为什么导致删除 UUIDField 到 Django SystemCheckError

Why leads deletion of UUIDField to 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 阻止我删除这个字段以及如何解决这个问题?

谢谢! :)

Could someone explain me what's going on and how to resolve this?

如错误所述,您有一个名为 CustomerAdmin 的模型管理员。确实:

<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'.

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