Как добавить шаблон с помощью тега {% include %}, сравнивая, какой пользователь вошел в систему, на django?
Мой asset_list html выглядит следующим образом
<div class="right">
<div class="search-container">
<input type="text" id="searchInput" placeholder="Search by AssetName..." aria-label="Search">
<button class="add-button" aria-label="Add Asset" id="addUserButton"><i class="fas fa-plus"></i> Add</button>
</div>
база данных логинов выглядит следующим образом, с ролями admin и user
class UserDetails(models.Model):
username = models.CharField(max_length=100, unique=True)
password = models.CharField(max_length=100) # Ideally, this should be hashed
role = models.CharField(max_length=45)
Просмотров для списка активов
def asset_list(request):
users = Asset_Table.objects.all()
return render(request, 'asset_mng/asset_pro.html', {'users': users})
У меня есть 2 роли Admin и User, когда Admin входит в систему, я хочу показать боковую панель администратора, а если пользователь входит в систему, показать боковую панель пользователя.
{% include 'admin_sidebar.html'%} or {% include 'user_sidebar.html'%}
<div class="right">
<div class="search-container">
<input type="text" id="searchInput" placeholder="Search by AssetName..." aria-label="Search">
<button class="add-button" aria-label="Add Asset" id="addUserButton"><i class="fas fa-plus"></i> Add</button>
</div>
Используйте if
клаузулу, чтобы определить, какую роль имеет вошедший в систему пользователь:
{% if user.role == "admin" %}
{% include 'admin_sidebar.html'%}
{% elif user.role == "user" %}
{% include 'user_sidebar.html'%}
{% endif %}
Передайте переменную из Django в шаблонизатор Jinja2, которая скажет вам, нужна ли вам админка или нет, а затем используйте условные операторы в Jinja2:
{% if admin %}
{% include 'admin_sidebar.html'%}
{% else %}
{% include 'user_sidebar.html'%}
{% endif %}
Затем в python:
return render(request, 'template.html', {'admin': True})