我正在使用django rest框架。我正在尝试使用create()方法进行序列化。在DishSerializer中,当我尝试将Dish引用传递给Ingredient实例时,它显示Unaccepted关键字arguments
成分模型类别为:
class Ingredient(models.Model):
dish_id = models.ForeignKey(Dish, on_delete=models.CASCADE, null = True, related_name='ingredientInfo')
.
.
.
这是我的菜序列化器:
class DishSerializer(serializers.ModelSerializer):
ingredientInfo = IngredientSerializer(many = True)
class Meta:
model = Menu
fields = ['id', 'name','type','status','ingredientInfo']
def create(self , validated_data):
ingredientInfo_data = validated_data.pop('ingredientInfo')
dish = Dish.objects.create(**validated_data)
for info in ingredientInfo_data:
Ingredient.objects.create(**info, dish = dish)
return dish
它向我显示Ingredient()得到了意外的关键字参数'dish'
我注意到的第一件事:
class ingredient(models.Model):
您确定不应该大写班级吗?对不起,我没有足够的声誉,所以我无法发表评论。
应该与您的模型一样为dish_id
:
Ingredient.objects.create(**info, dish_id = dish)