Attualmente la mia app Django ha URL protetti dalle funzioni 'permission_required()'.Trova le autorizzazioni necessarie per gli URL di Django senza chiamarli?
Questa funzione viene chiamata in tre modi diversi.
- Come decoratore in views.py, con parametri hardcoded.
- Come una semplice funzione, con parametro generato automaticamente, in viste generiche basate su classi personalizzate.
- Come una funzione che richiama viste in urls.py, con parametri hardcoded.
Ora sto aggiungendo un sistema di menu all'app e ho bisogno di fare in modo che le voci del menu riflettano se l'utente ha il permesso di richiedere l'URL di ogni voce di menu. (O estinguendo o nascondendo le voci.)
Esiste un modo per interrogare le autorizzazioni richieste a un URL senza che richiede l'URL?
L'unica soluzione che ho pensato finora è di sostituire il decoratore con un decoratore "menu_permssion_required()" senza parametri e un hardcoded di tutte le autorizzazioni in una struttura Python. Questo mi sembra un passo indietro, poiché le mie viste generiche basate su classi personalizzate già generano le autorizzazioni necessarie.
Qualche suggerimento su come creare un sistema di menu che rifletta le autorizzazioni dell'URL per l'utente corrente?
I menu con hardcode sempre nei modelli, è semplice e consente menu contestuali con {% estende%}. – jpic
scuse @jplc, non riesco a capire come il tuo commento si riferisce alla domanda. Questo riguarda specificamente le autorizzazioni. Le autorizzazioni sono trasversali, non collegate al prefisso URL o simili. – fadedbee
Puoi controllare i permessi nel modello: https://gist.github.com/25c03f286337c66cc860 Questo è abbastanza standard nei progetti di Django da quello che ho visto, ecco i documenti sul modulo per le django in questione: https: // docs.djangoproject.com/en/1.0/topics/auth/#id6 Tuttavia, il mio punto è che il tempo impiegato per creare un "sistema" per un menu HTML potrebbe essere meglio speso per altre cose. – jpic