为什么导致删除 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
到目前为止我尝试了什么:
我怀疑这可能与现有数据或其他一些依赖项有关。所以...
- 我删除了sqlite数据库,删除了所有迁移文件和运行
"python manage.py makemigrations"
和 "python manage.py migrate"
.
- 我运行
python manage.py flush
.
- 我还尝试将
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
,但由于该字段不再可用,因此会引发错误。
我一直在构建一个 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
到目前为止我尝试了什么:
我怀疑这可能与现有数据或其他一些依赖项有关。所以...
- 我删除了sqlite数据库,删除了所有迁移文件和运行
"python manage.py makemigrations"
和"python manage.py migrate"
. - 我运行
python manage.py flush
. - 我还尝试将
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
,但由于该字段不再可用,因此会引发错误。