django 对象没有 pk 但有 id

Posted

技术标签:

【中文标题】django 对象没有 pk 但有 id【英文标题】:django object havn't pk but have id 【发布时间】:2016-04-06 12:46:30 【问题描述】:

我对 Django 中的对象有疑问。 我的项目使用多重数据库。当我使用

创建对象时
obj, _created = self.model.objects.using('default').get_or_create(pk=1)

obj 没有 pk 但有 id

ipdb> obj.pk ipdb> obj.id 1 为什么会这样?

【问题讨论】:

看看这个***.com/questions/22345711/… 和那里的链接 【参考方案1】:

先看看这个答案: What's the difference between Model.id and Model.pk in django? Django queries - id vs pk

还有“get_or_create”的文档: https://docs.djangoproject.com/en/1.9/ref/models/querysets/#get-or-create

对象从“bd”中恢复时具有“pk”。 可能对象已创建,检查变量“_created”,它指定了新对象是否已创建或从“bd”恢复。

【讨论】:

对不起,我没有写,我尝试更新这个对象。他存在于db中,所以_cretated return False

以上是关于django 对象没有 pk 但有 id的主要内容,如果未能解决你的问题,请参考以下文章

django 视图没有返回 HttpResponse 对象。它返回 None 而不是

在 save() 之后,Doctrine_Record 没有在对象中设置 PK

与 Django 通用视图中的 pk 不同的 url 路径

url中没有pk的Django UpdateView

用户没有属性会话-> Django

对象未保存在 Celery 任务中