我创建了一个自定义用户模型,就像docs https://docs.djangoproject.com/en/3.1/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project说,当我运行makemigrations
我转到迁移文件夹并删除了其中的名字和姓氏列0001_initial.py
然后我跑了migrate
命令,但是当我运行createsuperuser
命令它在终端中抛出一个错误django.db.utils.OperationalError: no such column: myapp_usermodel.first_name
我怎样才能解决这个问题?
我想删除名字和姓氏列,因为我没有使用它们
EDIT:这是用户模型
from django.db import models
from django.utils.translation import gettext_lazy as _
from django.contrib.auth.models import AbstractUser
# Create your models here.
class usermodel(AbstractUser):
email = models.EmailField(max_length=60)
username = models.CharField(max_length=20, unique=True)
password = models.CharField(max_length=20)
def __str__(self):
return self.username
我转到迁移文件夹并删除了其中的名字和姓氏列0001_initial.py
你不应该这样做。这确实会阻止 Djangocreating列。但现在每次查询都会觉得这些列在那里。此外,如果您再次进行迁移,它会尝试添加额外的列。
你应该简单地使用方法解析顺序 (MRO)并将该字段设置为None
:
class usermodel(AbstractUser):
first_name = None
last_name = None
def __str__(self):
return self.username
您可能还最好删除数据库中的表和迁移文件并再次进行迁移,然后迁移数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)