Представления возвращают 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, чтобы это заработало.