Come mostrare Django autenticazione messaggi solo in interfaccia di amministrazione?
Domanda
messaggi auth di Django guardare piuttosto a portata di mano per la notifica di un utente CMS di qualche problema di configurazione. Il fatto è che i messaggi vengono cancellati ad ogni caricamento della pagina se si include il processore contesto "django.core.context_processors.auth", e si deve includere il processore che, se si desidera utilizzare l'interfaccia di amministrazione.
ho provato l'hacking intorno ad esso con l'aggiunta di quel processore a TEMPLATE_CONTEXT_PROCESSORS solo dopo aver confrontato l'URL di amministrazione / prima di chiamare admin.site.root, ma sembra che è già importato l'elenco dei processori in quel momento.
Quindi non v'è alcun modo per fare questo senza modificare alcuna del nucleo Django file stessi, e senza tralasciare il Django Auth app dalla vostra configurazione del tutto fino all'ultimo momento possibile?
Soluzione
Se il sistema messaggio Django è stato fondamentale per il mio sito vorrei aggiungere la messaggistica nelle mie opinioni con, ad esempio:
- integrazione con Growl
- qualche finestra javascript modale come jQuery Alert Dialogs
Se avete veramente bisogno di incidere in modo essi mostrano solo in pagine di amministrazione allora la soluzione più semplice sarebbe quella di copiare la funzione di autenticazione in django.contrib.core.context_processors.py e metterlo in un context_processors.py nella propria applicazione directory. Utilizzare nelle CONTEXT_PROCESSORS pila invece della versione django.core e modificarlo in modo che appaia alla URL della richiesta e chiama solo user.get_and_delete_messages()
se è l'URL di amministrazione.