Django中单独的管理员/用户身份验证系统

Dan*_*Dan 7 python authentication django

我最近开始学习/使用django; 我正试图找到一种方法为管理员和用户提供两个独立的身份验证系统.我不想创建一个全新的auth系统,而是想利用django的内置功能(即会话管理,@ login_required装饰等).

具体来说,我希望有两个单独的登录表 - 一个用于管理员,一个用于用户.admin登录表应该是django使用其默认字段生成的默认表(即.id, username, email, is_staff, etc.).另一方面,用户表我想只有5个字段 - id, email, password, first_name, last_name.此外,我想对登录表和@login_required装饰器使用django内置会话管理来获取各自的视图.最后,我想为管理员和用户提供两种独立且不同的登录表单.

任何人对我如何实现目标或知道任何可以帮助我的文章/示例有任何建议?

dcr*_*sta 1

如果我正确理解你的问题(也许我没有),我认为你是在问如何为非管理员用户创建单独的登录表单,同时仍然使用标准 Django 身份验证机制、User模型等。这是支持的Django 通过django.contrib.auth.views.

你想从 开始django.contrib.auth.views.login。在 urlconf 中添加一行,如下所示:

(r'^/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'})
Run Code Online (Sandbox Code Playgroud)

通用视图login接受template_name参数,该参数是您的自定义登录模板的路径(您也可以使用一个通用的模板,由 提供django.contrib.auth)。

有关loginlogout、和其他通用视图的完整文档可在Django 身份验证文档password_change中找到。