我的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表。
我想念什么?
答案 0 :(得分:0)
您正在使用的Django 1.6已经过时了-它会提前进行迁移,从而为您创建缺少的表。如注释中所述,您应该至少升级到Django 1.11;如果这是一个新项目,在撰写本文时,我建议您使用Django 2.1,因为新的URL语法对于入门非常友好。这似乎是一个新项目,因为您只是从定制用户模型开始。
简而言之:
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/
祝你好运!