ID为“None”的Djongo公司不存在,也许它被删除了?

wnavrhmk  于 2022-09-18  发布在  Go
关注(0)|答案(2)|浏览(183)

在类似的问题中,我找不到解决方案。

使用mongoh,Company对象确实存在,但在管理员中,它们显示为Object(None),因此无法编辑,因为出现错误“ID为”None“的公司不存在。可能它已被删除?”。我猜是关于“id”检测的,但我自己不能修复它。问:如何修复代码以使Company对象正确显示,而不是一个也不显示。

myproject> db.companies_company.find()
[
  { _id: ObjectId("6145dd9a8bc9a685b2ae2375"), name: 'company1' },
  { _id: ObjectId("6145ddaa8bc9a685b2ae2377"), name: 'company2' }
]

Models.py:

from django.db import models

# Create your models here.

class Company(models.Model):
    name = models.CharField(max_length=100, blank=False, null=False, unique=True)

Admin.py:

from django.contrib import admin

# Register your models here.

from .models import Company

@admin.register(Company)
class CompanyAdmin(admin.ModelAdmin):
    pass
qlvxas9a

qlvxas9a1#

手动设置_id字段解决了该问题。

from djongo import models

# Create your models here.

class Company(models.Model):
    _id = models.ObjectIdField()
    name = models.CharField(max_length=100, blank=False, null=False, unique=True)
z2acfund

z2acfund2#

这就是我如何解决这个问题的。向您的模型添加一个UUIDField并将其设置为主键。

import uuid

id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=100, blank=False, null=False)

注意:如果此模型的管理面板中已经有一些对象,则打开该对象仍会显示相同的错误。只有在您进行这些更改、执行迁移并添加新对象后才会生效。然后在打开新添加的对象时看不到错误。

相关问题