python - Django 3 OperationalError:没有这样的表'web_user'
问题描述
我想在我的 Django 应用程序中有两种类型的用户,所以我按照本教程运行
python manage.py makemigrations web
python manage.py migrate
('web' 是我的应用程序的名称)
现在我想访问admin
网站的一部分,由 django at 自动添加localhost:PORT/admin
。当我尝试访问该页面时,此错误显示:
django.db.utils.OperationalError: no such table: web_user
这是我的models.py
:
from django.contrib.auth.models import AbstractUser
from django.db import models
from web import constants
class User(AbstractUser):
USER_TYPE_CHOICES = (
(constants.USER_TYPE_CLEANER, 'cleaner'),
(constants.USER_TYPE_CONTRACTOR, 'contractor'),
)
user_type = models.PositiveSmallIntegerField(choices=USER_TYPE_CHOICES)
# extra fields
email = models.CharField(max_length=100)
phone_number = models.CharField(max_length=15)
date_of_birth = models.DateField('date_of_birth')
address = models.CharField(max_length=50)
city = models.CharField(max_length=25)
state = models.CharField(max_length=25)
并将其设置为settings.py
:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web.apps.WebConfig',
]
# Authentication
AUTH_USER_MODEL = 'web.User'
如何启用 django 的管理站点?它对于创建演示数据非常有用。
解决方案
感谢@bmons,答案是删除数据库db.sqlite3
、迁移文件并创建一个新用户。请注意,额外的字段必须可以为空,否则创建超级用户将失败。
推荐阅读
- python - 我想知道基于行和列值的平均值
- python - 更改 __init__ 内的类变量
- java - VSCode,带有Git Bash的Maven扩展:bash:意外标记'&'附近的语法错误
- python - 如何创建高度为像素值的图像
- c++ - 来自 std::vector 的路径字符串
- benchmarking - Apache Bench 中的并发究竟意味着什么?
- c# - 如何使用 SQL Server 管理对象启用文件流支持?
- mysql - 我无法从 docker 容器中的 .NET 应用程序连接到主机中的 mysql
- c++ - C++ memcpy/strcpy 的 char 指针指向类成员 char 指针
- python - 无法使用 kivy 应用程序和 buildozer 振动我的 android