【发布时间】:2017-03-03 02:10:50
【问题描述】:
我正在尝试在我的 Django 项目中使用自定义用户模型。运行迁移后,数据库表被命名为accounts_listuser,而 Django 似乎正在accounts_user 中寻找它们。如何更改此设置,以便 Django 查看用户模型的正确表 (accounts_user) 而不是 accounts_listuser?
在我的 settings.py 中:
# Auth user models
AUTH_USER_MODEL = 'accounts.User'
AUTHENTICATION_BACKENDS = (
'accounts.authentication.PersonaAuthenticationBackend'
)
accounts/models.py 文件:
class User(models.Model):
email = models.EmailField(primary_key=True)
last_login = models.DateTimeField(default=timezone.now)
REQUIRED_FIELDS = ()
USERNAME_FIELD = 'email'
is_authenticated = True
is_anonymous = False
以及查询失败的文件(accounts/authentication.py):
from django.contrib.auth import get_user_model
User = get_user_model()
# .. user's email retrieved ..
def get_user(self, email):
try:
return User.objects.get(email=email)
except User.DoesNotExist:
return None
完整的源代码can be found here如果有帮助的话。
【问题讨论】:
标签: django python-3.x django-models