根据模板中的特定组登录重定向到特定页面

Login redirecting to specific page based on specific group in template

我在 django-admin[staff, student] 中有两个管理员组。我希望每当用户想要登录时,程序首先检查用户属于哪个组,然后将每个用户重定向到特定页面。

index.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 docs

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.
        ...