如何删除 django 用户模型中的名字和姓氏列?

2024-03-22

我创建了一个自定义用户模型,就像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(使用前将#替换为@)

如何删除 django 用户模型中的名字和姓氏列? 的相关文章

随机推荐