我正在构建一个Django应用程序,我想实现身份验证。我认为既然框架已经包含了一个包,我就不必太复杂了。但我发现了一个问题。每当我创建一个模型|数据库Django为我创建了表。但是因为我还没有创建任何表格,所以当我尝试使用模型时,我认为Django提升no such table: auth_user
是正常的。
我刚写了这段代码:
from django.contrib import auth
result = auth.authenticate(username=user,password=pswd)
没有做任何其他事情。 我有什么要写的执行Django创建表并开始使用这个内置工具?
答案 0 :(得分:3)
身份验证功能不会记录用户,如果凭据正确,它只返回用户对象。您还必须使用登录。
from django.contrib.auth import authenticate, login
然后当用户登录时:
user = authenticate(username=user, password=pswd)
if user is not None:
#This will actually log the user in to the web request
login(request, user)
更多信息可以在这里找到:https://docs.djangoproject.com/en/1.6/topics/auth/default/#auth-web-requests
答案 1 :(得分:3)
您似乎在安装的应用程序中没有django auth模块。
在settings.py文件中检查INSTALLED_APPS是否有
INSTALLED_APPS = (
'django.contrib.auth',
...,
)
如果没有将django.contrib.auth
添加到您的INSTALLED_APPS并运行python manage.py syncb
为您创建身份验证表。
请注意,系统可能会要求您创建管理员用户。