在我的模型中
模型.py
class Province(models.Model):
name = models.CharField(max_length=128, verbose_name=u"province")
class City(models.Model):
province = models.ForeignKey("system.Province", related_name='cities', verbose_name=u"province")
name = models.CharField(max_length=128, verbose_name=u"name")
class District(models.Model):
city = models.ForeignKey("system.City", related_name='districts', verbose_name=u"city")
name = models.CharField(max_length=128, verbose_name=u"name")
序列化器.py
class DistrictSerializer(serializers.ModelSerializer):
class Meta:
model = District
fields = ('id', 'name')
class CitySerializer(serializers.ModelSerializer):
districts = DistrictSerializer(many=True, read_only=True)
class Meta:
model = City
fields = ('id', 'name', 'districts')
class ProvinceSerializer(serializers.ModelSerializer):
cities = CitySerializer(many=True, read_only=True)
class Meta:
model = Province
fields = ('id', 'name', 'cities')
当我向 url /system/province/1/ 发出 GET 请求时,我得到的是 json 字符串
{
"id": 1,
"name": "广东省",
"cities": [
{
"id": 1,
"name": "广州市",
"districts": [
{
"id": 1,
"name": "天河区"
},
{
"id": 2,
"name": "海珠区"
}
]
},
{
"id": 2,
"name": "汕头市",
"districts": [
{
"id": 3,
"name": "朝阳区"
}
]
},
{
"id": 3,
"name": "湛江市",
"districts": []
},
{
"id": 4,
"name": "韶关市",
"districts": []
}
]
分区json不是我想要的。 我怎样才能防止自动加载区
最佳答案
(推荐)从下面的元类中删除字段“district”。
class Meta:
model = City
fields = ('id', 'name')
或者,如果您必须更新与此字段相关的任何值,则使用 extra_kwargs 变量将此字段设置为 write_only。
class Meta:
model = City
extra_kwargs = {'districts': {'write_only': True}}
fields = ('id', 'name', 'districts')
关于django-rest-framework - django rest框架嵌套关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45718661/