django - Django 1.6.5 用户注册错误没有这样的表:auth_user
问题描述
我的设置.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
'Mysite'
)
AUTH_USER_MODEL = 'Mysite.PortalUserAbstract'
我的 Mysite.models.py:
class PortalUserAbstract(AbstractUser):
is_client = models.BooleanField(default=False)
is_manager = models.BooleanField(default=False)
错误信息 :
OperationalError at /accounts/signup/client/ 没有这样的表:auth_user 请求方法:POST 请求 URL:http: //127.0.0.1 :8000/accounts/signup/client/
Django 版本:1.6.5 异常类型:OperationalError 异常值:
没有这样的表:auth_user
当我执行 manage.py syncdb 时,它会创建表“Mysite_portaluserabstract”,但 auth 模块仍会查找 auth_user 表。
我错过了什么?
解决方案
您使用的是非常过时的 Django 1.6 - 它早于迁移,它将为您创建缺少的表。如评论中所述,您应该至少升级到 Django 1.11;如果这是一个新项目,我建议在撰写本文时使用 Django 2.1,因为新的 URL 语法对入门更友好。这似乎是一个新项目,因为您刚刚开始使用自定义用户模型。
简而言之:
- 创建一个新的虚拟环境
pip install django
django-admin startproject myproject && cd myproject
python manage.py startapp mysite
- 编辑
mysite/models.py
并添加以下内容:
class PortalUserAbstract(AbstractUser):
is_client = models.BooleanField(default=False)
is_manager = models.BooleanField(default=False)
- 编辑
myproject/settings.py
并添加:
AUTH_USER_MODEL = 'Mysite.PortalUserAbstract'
- 跑
python manage.py makemigrations
- 跑
python manage.py migrate
然后你应该使用最新版本的 Django 运行。阅读本教程可能会对您有好处:https ://docs.djangoproject.com/en/2.1/intro/tutorial01/
祝你好运!
推荐阅读
- javascript - 模块解析失败:号码无效
- docker - Shopware 5 development setup for windows 10
- python-3.x - scrapy trying to login with recaptcha keys in form data
- fonts - Woff2 with font collection inside
- sql - 为视图创建新列的内部联接返回错误值
- javascript - 我想获取所选元素的值,但它不起作用
- python - 有没有办法返回列表中整数的值
- angular - 如果在处理过程中丢失连接,Firestore 将恢复所有更改
- google-chrome - 一些网站的图标不起作用,它们只显示文本
- javascript - 我编写这段代码来创建一个可编辑的容器,我们可以在其中选择我们的元素并编辑它们的属性,但是代码无法正常运行