dentro de mi aplicación django Estoy almacenando cadenas de html en el db que luego se mostrarán en las páginas de inicio de los usuarios como "mensajes". Algunos de estos mensajes contienen formularios, pero no están escritos en el idioma de la plantilla, no puedo insertar el token csrf (rompiendo así la aplicación).¿Cómo puedo integrar el token django csrf directamente en HTML?
¿Hay alguna manera de insertar este token directamente desde dentro de los archivos python que estoy editando? Estoy buscando algo en la línea de:
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)
cualquier otra solución que funcionaría en un escenario similar sería genial. Gracias
Editar: En realidad eso no va a funcionar porque el token es diferente para cada sesión, por lo que su almacenamiento en la base de datos no es muy útil. ¿Hay alguna forma de cargar dinámicamente el token dentro de la vista?
¿Qué quiere decir por 'cargar dinámicamente el token dentro de la vista'? –
el formulario se almacena como una cadena en la base de datos, de modo que si almaceno el token allí, no será válido tan pronto como se cargue en una nueva sesión. Si fuera posible cargar un nuevo token desde el interior de la vista, podría interceptar el html tal como se estaba procesando, insertar el token apropiado y mostrar el formulario de trabajo. La clave aquí es que no voy a pasar por una plantilla para insertar el token. ¿Eso lo hace más claro? – ergelo
¿no puede simplemente usar el decorador csrf_protect? – sureshvv