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

问题描述

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...