为包含外键的Serializer类实现create函数



所以,这就是我如何实现类:

class VenueSerializer(serializers.ModelSerializer):
city = serializers.StringRelatedField(many=True)
class Meta:
model = Venue
fields = '__all__'
def create(self, validated_data):
venue = Team(
name=validated_data['name']
#I know this is wrong but i just wanted to demonstrate what is it that i need to get done
#city is the foreign key referencing to the model City
city=validated_data['city']
)
venue.save()
return venue

所以我有一个场地模型,每个场地都必须与模型城市相关联。我是新的REST框架,我无法找出一种方法来创建场地模型的实例,同时设置城市字段的值。有人能帮我一下吗?

比你

您可以使用PrimaryKeyRelatedField,为您正在创建的对象添加外键关系:

class VenueSerializer(serializers.ModelSerializer):
city = serializers.PrimaryKeyRelatedField(queryset=City.objects.all())
class Meta:
model = Venue
fields = '__all__'

你可以像这样传递一个请求数据:

{
"name": "MyVenue",
... (other venue related data)...,
"city": 1,
}

,其中cityCity对象的有效外键。这将自动为您设置venue对象的外键,您甚至不需要覆盖create来处理它。

相关内容

最新更新