为什么导致删除UUIDField到Django SystemCheckError



我一直在构建一个Django网站,并在我最初的"客户"模型中包含一个UUID字段"customer_id"。最后,我决定放弃它。但是当我试图从我的 models.py 中删除它时,Django 抛出了

SystemCheckError: System check identified some issues:
ERRORS:
<class 'accounts.admin.CustomerAdmin'>: (admin.E035) The value of 'readonly_fields[1]' is not a callable, an attribute of 'CustomerAdmin', or an attribute of 'accounts.Customer'.

这是models.py的代码

from django.db import models
import uuid

# Create a base model to make sure we keep track of creation and edits
class ModelBaseClass(models.Model):
date_created = models.DateTimeField(auto_now_add=True, null=True)
date_modified = models.DateTimeField(auto_now=True, null=True)

class Meta:
abstract = True

# Create your models here.
class Customer(ModelBaseClass):
customer_id = models.UUIDField(default=uuid.uuid4, #this is the field i try to drop
editable=False, 
unique=True)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)

def __str__(self):
return self.name

到目前为止我尝试过:

我怀疑这可能与现有数据或其他一些依赖项有关。 所以...

我删除了
  1. sqlite数据库,删除了所有迁移文件并运行"python manage.py makemigrations""python manage.py migrate".
  2. 我跑python manage.py flush.
  3. 我还尝试在删除之前将editable=False更改为editable=True和迁移, 但它并没有改变任何东西。

也许还值得一提的是,我的"客户"模型与另一个模型的关系。

有人可以解释为什么 Django 阻止我删除此字段以及如何解决此问题吗?

谢谢! :)

有人可以解释我发生了什么以及如何解决这个问题吗?

正如错误所说,您有一个名为CustomerAdmin的模型管理员。事实上:

<类'帐户.管理员.>客户管理员>:(管理员。E035) ">readonly_fields[1]"的值不是可调用对象、"客户管理员"的属性或"帐户"的属性。客户'。

对于readonly_fields,它列出了customer_id,但由于该字段不再可用,因此会引发错误。

相关内容

  • 没有找到相关文章

最新更新