django - 登录根据模板中的特定组重定向到特定页面
问题描述
我在 django-admin [staff, student] 中有两个管理员组。我希望每当用户想要登录时,程序首先检查用户所属的组,然后将每个用户重定向到特定页面。
索引.html
<form method="post" action="{% url 'users:login' %}" class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button name="submit" class="btn btn-primary mt-2">Log in</button>
{% endbuttons %}
<input type="hidden" name="next" value="{% url 'student_paper:index' %}" />
</form>
解决方案
您可以创建自定义login_view
:
这是一个示例,有关更多信息,请参阅Django 文档。
from django.contrib.auth import authenticate, login
def my_login_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
if user.is_staff:
# Redirect to a success staff page.
else:
# Redirect to a success page.
...
else:
# Return an 'invalid login' error message.
...
推荐阅读
- ios - Swift Playground 和 Procreate 练习 - Ipad 相机无法打开
- android - 活动/片段开始时如何滚动到recyclerView中的位置
- swift - 如何在 Swift 中执行循环移位?
- react-native - 如何在一次 fetch 调用(React Native)中设置两种不同的状态?
- html - 使用不显示 html 图像的 Visual Studio
- node.js - 如何在 MongoDB node.js 中插入数据?
- javascript - 如何制作像气泡一样扭曲图像的旋转木马?
- textview - 如何获取 Textview 显示的代码?
- java - 如何将 byte[] 图像拆分为每个字节最大 10000 长度的多个 byte[]?
- postgresql - 无法在 kubernets 集群内的节点之间使用 prisma 建立 postgres 连接