Django Проблемы CSRF при использовании Dynami c Formsets и Django Formtools - PullRequest
0 голосов
/ 20 марта 2020

Я использую Django formttools для создания многошагового мастера. В одной из форм у меня есть опция вопроса, где пользователям нужно добавить столько вопросов, сколько может понадобиться. Я получил наборы Dynami c с помощью Django Dynami c Formset , но хотя в моем шаблоне есть {% csrf_token%}, у меня все еще возникают проблемы с CSRF. Вот мой шаблон:

 {% block content %}
  <p>Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p>
  <form action="" method="post" enctype="multipart/form-data" id="job-question">{% csrf_token %}
    <table>
    {{ wizard.management_form }}
{% if wizard.form.forms %}
    {{ wizard.form.management_form }}
    {% for form in wizard.form.forms %}
        {{ form }}
    {% endfor %}
{% else %}
    {{ wizard.form }}
{% endif %}
</table>
{% if wizard.steps.prev %}
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.first }}">{% trans "first step" %}</button>
<button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button>
{% endif %}
<input type="submit" value="{% trans "submit" %}"/>


</form>

<script type="text/javascript" src="{% static 'js/jquery-min.3.4.1..js' %}"></script>
<script type="text/javascript" src="{% static 'js/jquery.formset.js' %}"></script>
<script type="text/javascript">
    $(function() {
        $('#job-question').formset();
    })
</script>
{% endblock %}

1 Ответ

0 голосов
/ 23 марта 2020

Мне удалось справиться с этим, передав каждую форму с ее идентификатором в функцию Dynami c formset JS. Таким образом, проверка была сделана полностью.

...