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

Mhm*_*dmn 5 django django-models

我创建了一个自定义用户模型,就像文档所说的那样,当我运行时,makemigrations我去了迁移文件夹并删除了里面的名字和姓氏列0001_initial.py,然后我运行了migrate命令,但是当我运行createsuperuser命令时,它抛出了一个终端中的错误django.db.utils.OperationalError: no such column: myapp_usermodel.first_name

我怎样才能解决这个问题?我想删除名字和姓氏列,因为我没有使用它们

编辑:这是用户模型

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
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 7

我去了迁移文件夹并删除了里面的名字和姓氏列 0001_initial.py

你不应该那样做。这确实会阻止 Django创建列。但是现在每次查询都会在列在那里的印象中进行。此外,如果您再次进行迁移,它会尝试添加额外的列。

您应该简单地使用方法解析顺序 (MRO)并将该字段设置为None

class usermodel(AbstractUser):
    first_name = None
    last_name = None
    
    def __str__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

您可能还最好删除数据库中的表和迁移文件并再次进行迁移,然后迁移数据库。