2012-02-27 7 views
51

Yetkilendirilen kişilerin izinlerini Django'da bir şablonun içinde kullanabilir miyim? (Ayrıcalıklı kullanıcılar için şablonun sonundaki basit bir formu görüntülemek istiyorum)Django'da şablonun izinlerini kontrol edin

Ve daha da önemlisi, hiç yapmamalı mıyım yoksa bu "Django yolu" değil mi? Eğer şablonları izinleri kontrol etmek arıyorsanız

+0

Benden hoşlananlar için, bundan sonra gelenler için Django 1.5 bağlantısı hafif değiştirildi ly. Bilgiler şu anda bu URL'deki dokümanlarda bulunabilir: https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions Orijinal yanıttaki hiçbir şey gerçekten değişmedi, ancak bu yalnızca yeni bir URL’dir :) – Xudonax

cevap

114

, aşağıdaki kod yeterli olacaktır:

modeli kullanıcı için formu görmek için izinleri ihtiyaç modele atıfta
{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

. Daha fazla örnek için https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions adresine bakın.

+2

Not: Bir süper kullanıcı olarak giriş yaptıysanız, izin ismini yanlış yazmış olsanız bile, 'perms.app_label.foobar' her zaman doğru olacaktır. – Flimm

1

Eğer kontrol ilgili daha ayrıntılı gerekirse:

giriş yapmış olan kullanıcının izinlerini

( django.contrib.auth.context_processors.auth etkin olması Bu aşağıdaki bağlam işlemci gerektirir) şablon değişkeni {{ perms }}

saklanır perms (örneğin belirli bir nesne üzerinde), bu uzantıyı kontrol edin: http://django-authority.readthedocs.org/en/latest/check_templates/