小编Mal*_*olm的帖子

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

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

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

object_list = request.session.get('object_list', None)
Run Code Online (Sandbox Code Playgroud)

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

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

我试过这个(反序列化然后得到pk)

object_list_id=[]
for obj in serializers.deserialize("json", object_list):
            object_list_id.append(obj.pk)
Run Code Online (Sandbox Code Playgroud)

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

'DeserializedObject' object has no attribute 'pk'
Run Code Online (Sandbox Code Playgroud)

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

{<DeserializedObject: riskass.Rating(pk=7)>}
Run Code Online (Sandbox Code Playgroud)

python django json

4
推荐指数
1
解决办法
1272
查看次数

按字母顺序对 Django models.py 进行排序:引用下面定义的模型

快速提问,

我试图清理我的 models.py,它有点乱;我认为按字母顺序排列它们会很聪明......

问题某些模型引用其他模型(通过外键),这些模型现在在文件中的下面定义。

我确信这很容易解决,我该怎么办?

from django.db import models


class Craft(models.Model):
    subdpt = models.ForeignKey(Subdepartment, on_delete=models.CASCADE)
    #### UNDEFINED NAME SUBDEPARTMENT ###

    title = models.CharField(max_length = 200)
    description = models.CharField(max_length = 200, blank = True)

    def __str__(self):
        return self.title

class Subdepartment(models.Model):
    subdpt_name = models.CharField(max_length=200)

    def __str__(self):
        return self.subdpt_name

    class Meta:
        permissions = (
            ("can_add", "Can add items in app"),
            ("can_edit", "Can edit items in app"),
        )
Run Code Online (Sandbox Code Playgroud)

python django models

2
推荐指数
1
解决办法
252
查看次数

标签 统计

django ×2

python ×2

json ×1

models ×1