1
resposta

Erro de Token

Criei um formulário, e ao tentar salvar as informações no banco de dados, é exibido a mensagem;

Reason given for failure:

    CSRF token missing or incorrect.

In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

Your browser is accepting cookies.
The view function passes a request to the template's render method.
In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login.
You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.

You can customize this page using the CSRF_FAILURE_VIEW setting.

Esse é meu formulário

<form action="{% url 'feedback' content.id %}" method="post">
          {% csrf_token %}
          <div class="form-group">
            <label for="name" class="col-form-label">Nome:</label>
            <input type="text" class="form-control" id="recipient-name" name="name" required>
          </div>
          <div class="form-group">
            <label for="yearBirthday" class="col-form-label">Ano de Nascimento:</label>
            <input id="date" type="number" class="form-control" name="yearBirthday" required>
          </div>
          <div class="form-group">
            <label for="email" class="col-form-label">Email:</label>
            <input type="text" class="form-control" name="email" required>
          </div>
          <div class="form-group">
            <label for="message" class="col-form-label">Mensagem:</label>
            <textarea class="form-control" id="message-text" name="message" required></textarea>
          </div>

          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
            <button type="submit" class="btn btn-primary">Enviar</button>
          </div>
</form>

Não consigo encontrar o porque isso está acontecendo.

1 resposta

Fala Gui, tudo bem?

Conseguiu resolver seu problema? Esse erro é resolvido nesse video mesmo. Se não conseguiu resolver, pode nos mostrar por gentileza os códigos dos seguintes arquivos:

  • view.py
  • template ou a página HTML da solicitação
  • urls.py do app e do projeto

: )