2012-02-27 15 views
51

Czy mogę użyć sprawdzenia uprawnień aplikacji Auth wewnątrz szablonu w Django? (Chcę wyświetlić prosty formularz na końcu szablonu dla uprzywilejowanych użytkowników)Sprawdź pozwolenie wewnątrz szablonu w Django

Co ważniejsze, czy powinienem to zrobić w ogóle, czy nie jest to "sposób Django"?

+0

Dla osób takich jak ja, które natkną się na to później, link do Django 1.5 został zmieniony nieznacznie ly. Informacje można teraz znaleźć w dokumentach pod tym adresem URL: https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions Nie zmieniło się nic w oryginalnej odpowiedzi, ale jest to tylko nowy adres URL :) – Xudonax

Odpowiedz

114

Jeśli szukasz, aby sprawdzić uprawnienia w szablonach, następujący kod wystarczy:

{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

przypadku modelu odnosi się do modelu, że użytkownik potrzebuje uprawnień, aby zobaczyć formularz.

Więcej przykładów można znaleźć na stronie https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions.

uprawnieniami aktualnie zalogowanego użytkownika są przechowywane w zmiennej szablonu {{ perms }}

(Wymaga następujące procesor kontekstowe być włączona: django.contrib.auth.context_processors.auth)

+2

Pamiętaj, że jeśli jesteś zalogowany jako superużytkownik, "perms.app_label.foobar" zawsze będzie prawdziwe, nawet jeśli błędnie wpisałeś nazwę uprawnienia. – Flimm

Powiązane problemy