Не загружается домашняя страница для одной группы пользователей (Django)

Мне нужно сделать сайт для родителей, учителей и администраторов. У всех них разные домашние страницы, поэтому я перенаправляю их на соответствующую домашнюю страницу, проверяя их группу. Администраторы и учителя перенаправляются на нужную домашнюю страницу, но для пользователей-родителей просто загружается страница входа.

Вот код в моем файле views.py для перенаправления на правильную домашнюю страницу

def login(request):
    """Renders the login page."""
    assert isinstance(request, HttpRequest)

    if request.user.is_authenticated:
        if request.user.groups.filter(name='admin').exists():
            return redirect('admin_homepage')
        elif request.user.groups.filter(name='teacher').exists():
            return redirect('teachers_home')
        elif request.user.groups.filter(name='parent').exists():
            return redirect('parents_home')
    else:
        return render(
            request,
            'app/login.html',
            {
                'title':'Login',
                'year': datetime.now().year,
            }
        )

А вот связанные пути из файла urls.py

urlpatterns = [
    re_path(r'^homepage$', views.admin_homepage, name='admin_homepage'),
    re_path(r'^teachers_home$', views.teachers_home, name='teachers_home'),
    re_path(r'^parents_home$', views.parents_home, name='parents_home'),
]

И если это может помочь, вот файл parents_home.html

{% extends "app/parent/parent_layout.html" %}
{% block content %}

<title>{{ title }} - PTA Homepage</title>
{% load static %}

<div class="jumbotron2">
        <h1><center>Parents - Teachers Association</center></h1>
</div>

<div class="vertical-center">
    <div>
        <h2><center>Welcome to school's Parent - Teacher Management!</center></h2>
    </div>
    <div>
        <h3><center>What would you like to do today?</center></h3>
    </div>
    <div class="container2">
        <center><button><a href="{% url 'dependanceMngt' %}">Dependance Management</a></button>
        <button><a href="{% url 'complaint' %}">Complaint</a></button>    
        <button><a href="{% url 'eventMngt' %}">View Event</a></button>
        <button><a href="{% url 'viewAnnouncement' %}"> View Announcement </a></button>    
    </center>
    </div>
</div>

<script src="{% static 'app/scripts/jquery-1.10.2.js' %}"></script>
<script src="{% static 'app/scripts/bootstrap.js' %}"></script>
<script src="{% static 'app/scripts/respond.js' %}"></script>
<script src="{% static 'app/scripts/modernizr-2.6.2.js' %}"></script>

{% endblock %}

Я проверил имена групп и разрешения с помощью суперпользователя, и все в порядке. Я переделал группу и пользователей в ней, чтобы убедиться в этом, и, похоже, проблема не в этом. Последние данные входа для пользователей родительской группы также показывают, что они действительно вошли в систему, просто это не перенаправляет их на правильную домашнюю страницу.

Заинтриговало то, что другая группа попадает на правильную домашнюю страницу, но не родительская группа. Я сделал то же самое, что и для других групп.

прежде всего сделайте поле user_type как superuser, is_teacher и is_parent, когда вы сделаете admin система автоматически отметит admin как superuser, когда вы регистрируете teacher и parent сделайте их поля teacher parent как

true and them then validate them after login 
 if request.user.is_authenticated:
        if request.user is superuser:
            return redirect('admin_homepage')
        elif request.user is teacher:
            return redirect('teachers_home')
        elif request.user is parent:
            return redirect('parents_home')

this might help you
Вернуться на верх