Django 1.6.5用户注册错误,无此表:auth_user

时间:2018-11-20 15:35:25

标签: django authentication

我的settings.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)

错误消息:

/ accounts / signup / client /中的OperationalError 没有这样的表:auth_user 请求方法:POST 要求网址:http://127.0.0.1:8000/accounts/signup/client/ Django版本:1.6.5 异常类型:OperationalError 异常值:
没有这样的表:auth_user

当我执行manage.py syncdb时,它将创建表“ Mysite_portaluserabstract”,但auth模块仍在查找auth_user表。

我想念什么?

1 个答案:

答案 0 :(得分:0)

您正在使用的Django 1.6已经过时了-它会提前进行迁移,从而为您创建缺少的表。如注释中所述,您应该至少升级到Django 1.11;如果这是一个新项目,在撰写本文时,我建议您使用Django 2.1,因为新的URL语法对于入门非常友好。这似乎是一个新项目,因为您只是从定制用户模型开始。

简而言之:

  • 创建一个新的virtualenv
  • from PyQt5.QtSql import * class LmtDataBase(): def __init__(self): self.db = QSqlDatabase.addDatabase("QSQLITE") self.db.setDatabaseName("LmtPilots.db") self.db.open() query = QSqlQuery() query.exec_('''CREATE TABLE Pilots(id INTEGER PRIMARY KEY,pilot_1 TEXT, datetime1 TEXT, datetime2 TEXT,pilot_mail TEXT)''') self.db.commit() self.db.close() # ...
  • 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

然后,您应该退出并使用最新版本的Django。您可能会很满意地完成本教程:https://docs.djangoproject.com/en/2.1/intro/tutorial01/

祝你好运!