Django认证系统实现

时间:2014-08-12 17:23:15

标签: python django

我正在构建一个Django应用程序,我想实现身份验证。我认为既然框架已经包含了一个包,我就不必太复杂了。但我发现了一个问题。每当我创建一个模型|数据库Django为我创建了表。但是因为我还没有创建任何表格,所以当我尝试使用模型时,我认为Django提升no such table: auth_user是正常的。

我刚写了这段代码:

from django.contrib import auth
result = auth.authenticate(username=user,password=pswd)

没有做任何其他事情。 我有什么要写的执行Django创建表并开始使用这个内置工具?

2 个答案:

答案 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为您创建身份验证表。

请注意,系统可能会要求您创建管理员用户。