【发布时间】:2015-12-24 22:46:53
【问题描述】:
这对我来说似乎有点奇怪,但现在有效。由于我是 django/python 的新手,请告诉我您将如何解决问题。 目标是创建一个 Waypoint 对象,该对象在路径中具有 Trip id 作为参数。 Trip 是 Waypoint 的外键。
class WaypointSerializer(serializers.ModelSerializer):
trip = serializers.PrimaryKeyRelatedField(read_only=True)
class Meta:
model = Waypoint
fields = ('id', 'trip', 'position', 'time')
def create(self, validated_data):
trip_id = self.context.get('request').parser_context['kwargs']['pk']
validated_data['trip'] = Trip.objects.get(pk=trip_id)
return super(WaypointSerializer, self).create(validated_data)
【问题讨论】:
-
你为什么要这样做?您的序列化程序中有一个
trip字段,因此它将位于验证数据中。 -
端点类似于“/trips/5545/waypoint/”而且我不想额外发送行程对象
-
当然不是 id,因为路径已经包含它。我想在正文中发送的唯一内容是位置和时间(插入对象时将生成 id)
标签: python django django-rest-framework