我正在使用Django Rest框架开发Django API。我有两个相关的实体,Event
和Venue
。事件发生在一个地点
通过使用嵌套序列化,我可以将以下内容返回给API用户:
{
"id": "1234",
"name": "My event",
"venue": {
"id": "5678",
"name": "My venue"
}
}
这一切都是意料之中的。但是,我现在尝试发布一个事件,并将地点作为一个参数:
POST /api/events/
{
"name": "My new event",
"venue_id": "5678"
}
但我正在努力让这一切顺利进行。我尝试将venue_id
和venue
作为属性名(我更喜欢_id
,因为这会更正确,但没什么大不了的)
我正在使用以下序列化程序:
class VenueSerializer(serializers.ModelSerializer):
class Meta:
model = Venue
fields = ['id', 'name', 'created_at', 'updated_at']
class EventSerializer(serializers.ModelSerializer):
venue = VenueSerializer()
class Meta:
model = Event
fields = ['id', 'name', 'venue', 'created_at', 'updated_at']
实现这一目标的正确方法是什么
如果使用PrimaryKey(场地id)而不是整个模型对象,则可以使用PrimaryKeyRelatedField而不是嵌套序列化程序
在您的示例中,它看起来像:
您应使用以下请求:
相关问题 更多 >
编程相关推荐