获取Django中反序列化对象的主键

时间:2017-03-30 14:07:17

标签: python json django

我有一个存储在会话中的对象列表(将列表从一个视图传递到另一个视图)[好吧,必须有更好的方法来执行此操作,但这是另一个问题!]

我通过执行以下操作从会话中访问列表:

{
    "deviceID" : "01dbd619-843b-4197-b954",
    "Coordinates" : "12.984012,80.246712",
    "country" : "dsasa"
}

但是这个object_list实际上是一个序列化的django对象。

我需要的是现在获取此object_list的所有pk(然后重建一个干净的查询集......)

我试过这个(反序列化然后获取pk)

object_list = request.session.get('object_list', None)

但它似乎没有效果......任何想法?

object_list_id=[]
for obj in serializers.deserialize("json", object_list):
            object_list_id.append(obj.pk)

PS:如果我从循环调试obj,这是对象类型:

'DeserializedObject' object has no attribute 'pk'

1 个答案:

答案 0 :(得分:2)

知道了,它在文档中没有说明这方面的任何内容!

如何在django中获取序列化对象的pk:

# filtered_ratings : list of serialized objects (serialized through django's serializer)

from django.core import serializers

for obj in serializers.deserialize("json", filtered_ratings):
    pk = obj.object.pk

希望有一天能帮到某人!