Come mostrare Django autenticazione messaggi solo in interfaccia di amministrazione?

StackOverflow https://stackoverflow.com/questions/674464

  •  21-08-2019
  •  | 
  •  

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?

È stato utile?

Soluzione

Se il sistema messaggio Django è stato fondamentale per il mio sito vorrei aggiungere la messaggistica nelle mie opinioni con, ad esempio:

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top