我是 Python 和 Django 新手。我正在使用 Django-Rest-Framework 创建 api,我想序列化可以接受以下格式的 json 的数据:
{
"ingredients": ["Sugar","Egg"],
"name": "Cake",
"description": "Dinner Food",
"directions": "direction1"
}
Run Code Online (Sandbox Code Playgroud)
但是我可以使用以下格式将数据保存在数据库中:
{
"ingredients": [{"name":"Cake"},{"name":"Egg"}],
"name": "Rice",
"description": "Dinner Food",
"directions": "direction1"
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何将字典转换为设置字段。我知道列表字段和列表序列化器,但不知道如何使用它们。是否可以使用模型序列化器来做到这一点?
序列化器.py
class IngredientSerializer(serializers.ModelSerializer):
class Meta:
model = Ingredient
fields = '__all__'
class RecipeSerializer(serializers.ModelSerializer):
ingredients = IngredientSerializer(many=True)
class Meta:
model = Recipe
fields = '__all__'
def create(self, validated_data):
ingredients_data = validated_data.pop('ingredients')
print(ingredients_data)
recipe = Recipe.objects.create(**validated_data)
for ingredient in ingredients_data:
ingredient, created = Ingredient.objects.get_or_create(name=ingredient['name']) …Run Code Online (Sandbox Code Playgroud)