Python 嵌套关系REST序列化程序
型号.pyPython 嵌套关系REST序列化程序,python,django,python-3.x,django-rest-framework,Python,Django,Python 3.x,Django Rest Framework,型号.py class Item(models.Model): name=models.CharField(max_length=500) short_description=models.CharField(max_length=500) restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE) def __str__(self): return str(self.name
class Item(models.Model):
name=models.CharField(max_length=500)
short_description=models.CharField(max_length=500)
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
def __str__(self):
return str(self.name)
class ItemVariation(models.Model):
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
item=models.ForeignKey(Item,on_delete=models.CASCADE)
price=models.IntegerField(blank=True,null=True,default=0)
item_code=models.CharField(max_length=500)
keyword= models.ManyToManyField(Keyword)
image=models.ImageField(upload_to='dishes/', blank=True, null=True)
def __str__(self):
return str(self.id)
class ItemsSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields =('name','short_description')
class ItemVariationSerializer(serializers.ModelSerializer):
items = ItemsSerializer(many=True, read_only=True)
class Meta:
model = ItemVariation
fields ='__all__'
序列化程序.py
class Item(models.Model):
name=models.CharField(max_length=500)
short_description=models.CharField(max_length=500)
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
def __str__(self):
return str(self.name)
class ItemVariation(models.Model):
restaurant=models.ForeignKey(Restaurant,on_delete=models.CASCADE)
item=models.ForeignKey(Item,on_delete=models.CASCADE)
price=models.IntegerField(blank=True,null=True,default=0)
item_code=models.CharField(max_length=500)
keyword= models.ManyToManyField(Keyword)
image=models.ImageField(upload_to='dishes/', blank=True, null=True)
def __str__(self):
return str(self.id)
class ItemsSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields =('name','short_description')
class ItemVariationSerializer(serializers.ModelSerializer):
items = ItemsSerializer(many=True, read_only=True)
class Meta:
model = ItemVariation
fields ='__all__'
响应:
{
"id": 7,
"price": 0,
"item_code": "test",
"image": "/media/dishes/download_3_kcE78IS.jpeg",
"restaurant": 1,
"item": 7,
"keyword": [
3
]
}
我的回答是这样的,但我的回答中没有相关的字段项。谁能告诉我哪里错了。此代码正在返回
项
,它是您模型中的项
(不带“s”。因此,使用
源代码
参数作为
class ItemVariationSerializer(serializers.ModelSerializer):
items = ItemsSerializer(read_only=True, source='item')
class Meta:
model = ItemVariation
fields ='__all__'