根据模板中的特定组登录重定向到特定页面
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.
...
我在 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.
...