Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2012 11:38:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ребята, помогите написать tamplatetag

Никогда этим не заморачивался, а тут вдруг понадобилось.
Что-то не возьму в толк как осуществить,
есть такое

                            {% menu "Здания" "/s\d+/building/.*" building-lst org_id %}
{% menu "Группы" "/s\d+/group/.*" group-lst org_id %}
{% menu "Персонал" "/s\d+/staff/.*" staff-lst org_id %}
Есть модель, в которой каждому юзеру дано разрешение на кнопку меню.
Хочу замутить свой тэг if, что-то вроде.

                  
{% if_has_permission user 'building' %}
{% menu "Здания" "/s\d+/building/.*" building-lst org_id %}
{% endif_has_permission %}
{% if_has_permission user 'group' %}
{% menu "Группы" "/s\d+/group/.*" group-lst org_id %}
{% endif_has_permission %}
и так далее
Как сиё делается?



Отредактировано (Март 2, 2012 11:40:29)

Офлайн

#2 Март 2, 2012 13:33:37

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Ребята, помогите написать tamplatetag

Офлайн

#3 Март 3, 2012 11:36:39

Imposeren
От:
Зарегистрирован: 2009-04-06
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

Ребята, помогите написать tamplatetag

Подключаете контекст процессор django.core.context_processors.auth (обычно включен). Потом в темплейттеге menu делаете что бы он принимал контекст (takes_context=True) (найдёте по ссылке выше), и проверяете:
context.has_perm('app_menu.view_building')

как создавать пермишены читать тут:
https://docs.djangoproject.com/en/dev/topics/auth/#permissions

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



Отредактировано (Март 3, 2012 11:37:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version