nella mia app django sto memorizzando stringhe di codice html nel db che verranno poi visualizzate nelle home page degli utenti come "messaggi". Alcuni di questi messaggi contengono moduli, ma non vengono scritti nella lingua del modello, non sono in grado di inserire il token csrf (interrompendo in tal modo l'app).Come posso incorporare il token django csrf direttamente in HTML?
C'è un modo per inserire questo token direttamente dai file python che sto modificando? Sto cercando qualcosa sulla falsariga di:
csrf_token = django.csrf.generate()
message = "press the button please: <form><input type='hidden' name='csrf_token' value='%s'><input type='submit' value='press here'></form>" % (csrf_token)
qualsiasi altra soluzione che avrebbe funzionato in uno scenario simile sarebbe grande. Grazie
Edit: realtà che non sta andando a lavorare perché il token è diverso per ogni sessione, quindi riporlo nel DB non è molto utile. c'è un modo per caricare dinamicamente il token all'interno della vista?
Che cosa si intende per 'caricare dinamicamente il token all'interno della vista'? –
il modulo viene memorizzato come una stringa nel database, quindi se lo memorizzo il file non sarà valido non appena viene caricato in una nuova sessione. Se fosse possibile caricare un nuovo token dalla vista, potrei intercettare l'html mentre veniva eseguito il rendering, inserire il token appropriato e visualizzare il modulo di lavoro. La cosa fondamentale qui è che non sto passando un modello per inserire il token. Questo lo rende più chiaro? – ergelo
non puoi semplicemente usare il decoratore csrf_protect? – sureshvv