gpt4 book ai didi

python - Django 1.8 在 Serializer 中获取 kwargs

转载 作者:太空狗 更新时间:2023-10-30 01:00:45 24 4
gpt4 key购买 nike

这对我来说似乎有点奇怪,但目前有效。由于我是 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)

最佳答案

在 View 中你可以覆盖 get_serializer_context 方法:

def get_serializer_context(self):
return {"trip_id": self.kwargs['trip_id']}

然后在序列化程序中,您可以从 self.context 中获取它:

def create(self, validated_data):
trip_id = self.context["trip_id"]
validated_data['trip'] = Trip.objects.get(pk=trip_id)
return super(WaypointSerializer, self).create(validated_data)

关于python - Django 1.8 在 Serializer 中获取 kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com