Saltar al contenido

Django: Cómo anular CSRF_FAILURE_TEMPLATE

Solución:

Consulte el documento de Django, puede configurar CSRF_FAILURE_VIEW en tus settings.py, tal como:

CSRF_FAILURE_VIEW = 'your_app_name.views.csrf_failure'

Además, deberá definir un csrf_failure función en su vista (necesita tener esta firma: def csrf_failure(request, reason="") basado en el documento), que es similar a:

def csrf_failure(request, reason=""):
    ctx = {'message': 'some custom messages'}
    return render_to_response(your_custom_template, ctx)

Y puede escribir su plantilla personalizada como:

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        {{ message }}
    </body>
</html>

A partir de Django 1.10, simplemente puede agregar y personalizar el 403_csrf.html plantilla: https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-CSRF_FAILURE_VIEW

Agregar 403_csrf.html template al directorio de plantillas del proyecto.

Como puede ver en el código fuente django / views / csrf.py: si tiene esta plantilla, se aplicará. No es necesario configurar nada.

Contenido de la plantilla que necesita personalizar para sus necesidades:

<div id="summary">
  <h1>{{ title }} <span>(403)</span></h1>
  <p>{{ main }}</p>
{% if no_referer %}
  <p>{{ no_referer1 }}</p>
  <p>{{ no_referer2 }}</p>
  <p>{{ no_referer3 }}</p>
{% endif %}
{% if no_cookie %}
  <p>{{ no_cookie1 }}</p>
  <p>{{ no_cookie2 }}</p>
{% endif %}
</div>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *