Как добавить шаблон с помощью тега {% 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})
Вернуться на верх