【问题标题】:Get primary key of a deserialized object in Django在 Django 中获取反序列化对象的主键
【发布时间】:2025-11-25 21:05:02
【问题描述】:

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

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

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

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

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

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

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

但它似乎不起作用..有什么想法吗?

'DeserializedObject' object has no attribute 'pk'

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

{<DeserializedObject: riskass.Rating(pk=7)>}

【问题讨论】:

    标签: python json django


    【解决方案1】:

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

    如何在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
    

    希望有一天这对某人有所帮助!

    【讨论】:

      最近更新 更多