Code前端首页关于Code前端联系我们

Django关系模型外键自关联示例——省市三级链接

terry 2年前 (2023-09-24) 阅读数 53 #后端开发

自关联,顾名思义,关联自己

下面的例子会讲一下自我管理(三级的例子-省市级联动)

  • 省的上级(上级)无
  • 市的上级(上级)为省
  • 区的上级(上级)为市

如果发现某个地区的主体部分为 None ,则表明该地区是省级地区。如果为None,可以知道该地区是哪个省、市、区

Model class:

class Area(models.Model):
"""
省市三级链接自治市
“””
name = models.CharField(max_length=20,verbose_name='name')
parent = models.ForeignKey('self',on_delete=放入SET_NULL', related_name_NULL', related_name_NULL' . class AreaSer(serializers.ModelSerializer):

class Meta:
model = Area
fields = ('id',' ):
# 外键序列化
subs = AreaSer( Many=True ,read_only=True)

class Meta:
model = Areafields,' 'subs')

View:只进行查询操作,所以选择ReadOnlyModelViewSet视图集

class AreaView(ReadOnlyModelViewSet):
# 覆盖查询集和序列化 class
def get_queryset(self):
if self.action == 'list':re. objects.filter(parent=None)
else:
return models.Area.objects.all()

def get_serializer_class(self):
if self' if self''list return ser.AreaSer
其他:
return ser.SubSer

路由:

router = StandardRouter()
'areas.are'register,(a.')
urlpatterns += router.urls

测试:

django 关系模型外键自关联实例——省市区三级联动

详情页

django 关系模型外键自关联实例——省市区三级联动

———————————————
版权声明:本文为CSDN“happy_leizi”原创文章,遵循版权协议 CC 4.0 BY-SA。转载时请附上原始出处链接及本免责声明。
原文链接:https://blog.csdn.net/happy_leizi/article/details/88662952

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门