Django使用自定义后端登录

时间:2011-11-08 21:40:30

标签: python django django-authentication django-login

我正在使用Django开发基于商店的身份验证系统,我试图让它成为指定用户尝试登录的商店的网址。例如

login/store-name

然后将用户登录到请求的商店。我的问题是,有没有办法使用django的内置登录表单/机制来完成此操作,或者我必须创建自己的登录表单和视图。

3 个答案:

答案 0 :(得分:1)

我认为你可以在urls.py

中做到这一点
urlpatterns = patterns('',
    url(r'^login/store-name-1/$', login, name="login"),
    url(r'^login/store-name-2/$', login, name="login"),
    url(r'^accounts/logout/$', logout, {'next_page': '/',}, name='logout')
)

我不清楚你想做什么?

答案 1 :(得分:1)

如果您想为每个商店单独登录,则需要自定义登录表单,因为django auth软件包将创建对您的所有商店都通用的用户。

答案 2 :(得分:1)

在我看来,您应该创建自己的表单并login view

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active  *** and user can login in this store ***:
            login(request, user)
            # Redirect to a success page.
        else:
            # Return a 'disabled account' error message
    else:
        # Return an 'invalid login' error message.

“并且用户可以在此商店登录”:从请求中获取路径并进行检查。