首页 > 解决方案 > 登录根据模板中的特定组重定向到特定页面

问题描述

我在 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>

标签: djangodjango-admin-filters

解决方案


您可以创建自定义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.
        ...

推荐阅读