Представления возвращают html из другого приложения в Django

Я хочу показать данные с разными характеристиками. Так, есть 2 роли, где у администратора есть 5 колонок в таблице, а у учителя только 4 колонки в таблице. Я уже изменил HTML, но когда я возвращаю classlist.html на странице учителя views.py ... он возвращает admin classlist.html, который имеет 5 колонок в таблице.

Вот мой код :

Urls.py (Teacher APP):

from django.urls import path
from teacherpage import views

urlpatterns = [
    path('', views.index, name='index'),
    path('classlist/', views.classlist, name='classlist'),
]

Views.py (Teacher APP):

def classlist(request):
    data = classModel.objects.all()
    classlist= {
        "classlist" : data
    }
    return render(request,'classlist.html', classlist)

Это сложно без фактических кодов проекта от вас, но вот идея о том, как вы можете использовать одно и то же представление и один и тот же html файл для двух разных таблиц. Например, если роль вашего пользователя хранится в модели User, то вы можете использовать этот код в classlist.html:

{% if user.is_authenticated %}
{% if user.role == 'admin' %}
    <table with five columns>
{% else %}
    <table with four columns>
{% endif %}
{% else %}
    no table for you
{% endif %}

К вашему сведению, вам не нужно изменять какие-либо представления или url, чтобы это заработало.

Вернуться на верх