嵌套序列化器创建
Nested Serializer Creation
我正在使用 Django 休息框架。我正在尝试将 create() 方法用于序列化程序。在 DishSerializer 中,当我尝试将 Dish 引用传递给 Ingredient 实例时,它显示 Unaccepted keyword argument
成分型号class是:
class Ingredient(models.Model):
dish_id = models.ForeignKey(Dish, on_delete=models.CASCADE, null = True, related_name='ingredientInfo')
.
.
.
这是我的 Dish Serializer:
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):
您确定 class 不应该大写吗?抱歉,我没有足够的声誉,无法发表评论。
它应该是 dish_id
和你的模型一样:
Ingredient.objects.create(**info, dish_id = dish)
我正在使用 Django 休息框架。我正在尝试将 create() 方法用于序列化程序。在 DishSerializer 中,当我尝试将 Dish 引用传递给 Ingredient 实例时,它显示 Unaccepted keyword argument
成分型号class是:
class Ingredient(models.Model):
dish_id = models.ForeignKey(Dish, on_delete=models.CASCADE, null = True, related_name='ingredientInfo')
.
.
.
这是我的 Dish Serializer:
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):
您确定 class 不应该大写吗?抱歉,我没有足够的声誉,无法发表评论。
它应该是 dish_id
和你的模型一样:
Ingredient.objects.create(**info, dish_id = dish)