【发布时间】:2026-01-05 16:05:01
【问题描述】:
我有 3 个表 Province、Commune 和 District 相互链接。
Province hasMany District
District hasMany Commune
当访问我的 api url api/v1/province/ 时,我得到了这样的数据
[
{
"id": 1,
"name_eng": "Banteay Meanchey",
"name_kh": "បន្ទាយមានជ័យ",
"district": [
{
"id": 1,
"name_eng": "Mongkol Borei",
"name_kh": "មង្គលបុរី",
"province": 1
},
{
"id": 3,
"name_eng": "Malay",
"name_kh": "មា៉ឡៃ",
"province": 1
}
]
},
]
我想让它像这样嵌套多个
[
{
"id": 1,
"name_eng": "Banteay Meanchey",
"name_kh": "បន្ទាយមានជ័យ",
"district": [
{
"id": 1,
"name_eng": "Mongkol Borei",
"name_kh": "មង្គលបុរី",
"province": 1
"commune": [
"id": 1,
"name_eng": "Mongkol Borei",
"name_kh": "មង្គលបុរី",
]
},
]
},
这样可以吗???
My Model
class Province(models.Model):
name_eng = models.CharField(max_length=50)
name_kh = models.CharField(max_length=50)
class District(models.Model):
province = models.ForeignKey(
Province, on_delete=models.CASCADE, related_name="district")
name_eng = models.CharField(max_length=50)
name_kh = models.CharField(max_length=50)
class Commune(models.Model):
district = models.ForeignKey(
District, on_delete=models.CASCADE, related_name="commune")
name_eng = models.CharField(max_length=50)
name_kh = models.CharField(max_length=50)
My Serializer
class ProvinceSerializer(serializers.ModelSerializer):
# commune = serializers.SerializerMethodField()
class Meta:
model = Province
fields = ['id', 'name_eng', 'name_kh', 'district']
depth = 1
class DistrictSerializer(serializers.ModelSerializer):
class Meta:
model = District
fields = ['id', 'name_eng', 'name_kh', 'commune']
# fields = '__all__'
depth = 1
class CommuneSerializer(serializers.ModelSerializer):
class Meta:
model = Commune
# fields = '__all__'
fields = ['id', 'name_eng', 'name_kh', 'district']
depth = 1
感谢您的帮助。谢谢:)
【问题讨论】:
标签: django django-models django-rest-framework model