所以,这就是我如何实现类:
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,
}
,其中city
是City
对象的有效外键。这将自动为您设置venue
对象的外键,您甚至不需要覆盖create
来处理它。