2012-02-27 12 views
51

Posso utilizzare il controllo dell'autorizzazione dell'applicazione Auth in un modello in Django? (Voglio mostrare un semplice modulo alla fine del modello per gli utenti privilegiati)Verifica autorizzazione all'interno di un modello in Django

E, ancora più importante, dovrei farlo affatto o non è questo il "modo Django"?

+0

Per le persone come me, che inciampare in seguito, il collegamento per Django 1.5 è stato modificato leggermente LY. Le informazioni possono ora essere trovate nei documenti a questo URL: https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions Nulla nella risposta originale è davvero cambiato, ma questo è solo un nuovo URL :) – Xudonax

risposta

114

Se si sta cercando di verificare la presenza di autorizzazioni nel template, il seguente codice sarebbe sufficiente:

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

Dove modello si riferisce al modello che l'utente ha bisogno di autorizzazioni per visualizzare il modulo per.

Fare riferimento a https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions per ulteriori esempi.

le autorizzazioni dell'utente attualmente connesso vengono memorizzati nella variabile di modello {{ perms }}

(Ciò richiede il seguente processore contesto essere abilitato: django.contrib.auth.context_processors.auth)

+2

Nota che se hai effettuato l'accesso come superutente, 'perms.app_label.foobar' sarà sempre vero, anche se hai sbagliato a digitare il nome del permesso. – Flimm

Problemi correlati