Задать вопрос

Как сделать в django динамическое меню?

Добрый день, такая проблема - на сайте будет менюшка, для доступа к разделам.
Отображать разделы нужно в зависимости от роли.
Менюшка бутстраповкая и желательно её тоже как-нибудь автоматом рисовать

Тут несколько вопросов - как можно сформировать список ролей и соответствия урла к которому они имеют доступ и как собственно формировать эту менюшку? И где это лучше всего делать?
Меню должно отображаться для всех разделов, которые наследуют базовый шаблон личного кабинета.

Чуть подробнее - думаю это как то должно выглядеть так - есть словарь, там значение ключа - роль пользователя, а само значение список из урлов куда роль имеет доступ, как то так
perm = {
    'CLIENT': {
        'home': {'url': reversed('home'), 'name': 'Главная'},
        'orders': {'url': reversed('orders'), 'name': 'Заказы'},
        'etc': {'url': reversed('etc'), 'name': 'Остальное'}
    },
    'ADMIN': {
        'admin': {'url': reversed('admin'), 'name': 'Управление'},
        'home': {'url': reversed('home'), 'name': 'Главная'},
        'orders': {'url': reversed('orders'), 'name': 'Заказы'},
        'etc': {'url': reversed('etc'), 'name': 'Остальное'}
    }
}
...
role = 'CLIENT'
...
return perm[role]

Затем в менюху отдается список для роли и она формируется, как то так

<ul>
    {% for perm in perms %}
        <li><a href="{{ perm.url }}">{{ perm.name }}</a></li>
    {% endfor %}
</ul>


Такое вообще практикуется? Как правильно такие вещи правильно реализовывать?
  • Вопрос задан
  • 822 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@deliro
Добавь меню в функцию, функцию в CONTEXT_PROCESSORS и на основе request.user определяй, что отдать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vGrabko99
html, css, js, php, golang, mysql
я бы посоветовал формировать менюшку на стороне клиента
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы