获取Django中序列化程序保存的对象的最后一个插入ID
我有一个visitorSaveSerializer,它负责验证要保存的数据:
class VisitorSaveSerializer(serializers.ModelSerializer):
class Meta:
model = Visitor
fields = ('gsm', 'email', 'firstname', 'lastname')
问题是:
visitor_serializer = VisitorSaveSerializer(data={...related data here...})
if visitor_serializer.is_valid():
visitor_serializer.save()
visitor_id = visitor.serializer.data.get("id", 0) // Fails for sure.
好的,我知道 id 不在序列化程序字段中,所以最后一行失败了。
当我需要获取最后插入的 id 时,我应该如何保存对象?
回答
序列化程序返回保存的实例,因此您可以通过以下方式获取该实例的主键:
visitor_serializer = VisitorSaveSerializer(data={…})
if visitor_serializer.is_valid():
visitor = visitor_serializer.save()
visitor_id = visitor.pk