Почему удаление UUIDField приводит к ошибке Django SystemCheckError
Я создавал сайт на Django и включил UUID-поле "customer_id" в свою начальную модель "Customer". Наконец, я решил удалить его. Но когда я пытаюсь удалить его из моего 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
Что я пробовал до сих пор:
Я подозреваю, что это может быть связано с существующими данными или какими-то другими зависимостями. Итак...
- I deleted the sqlite database, deleted all migration files and ran
"python manage.py makemigrations"and"python manage.py migrate". - I ran
python manage.py flush. - I also tried to change the
editable=Falsetoeditable=Trueand migrate before dropping, but it didn't change anything.
Возможно, также стоит упомянуть, что моя модель "Customer" имеет отношение к другой модели.
Может кто-нибудь объяснить мне, почему Django не дает мне удалить это поле и как это решить?
Спасибо! :)
Может кто-нибудь объяснить мне, что происходит и как это решить?
Как говорит ошибка, у вас есть модель администратора с именем 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, но поскольку это поле больше не доступно, он выдает ошибку.