Джанго: [u'ManagementForm данные отсутствуют или были подделаны ']

У меня есть набор моделей, который я хочу сохранить в модели.

В моих шаблонах следующее прекрасно работает (это означает, что форма сохраняется в базе данных, когда я нажимаю "Отправить"):

{{ formset.management_form }}
{{ formset }}

Даже это прекрасно работает

{{ formset.management_form }}
{% for row in formset %}
    {{ row }}
{% endfor %}

Но как только я захочу стилизовать свой набор форм (в таблице) примерно так:

{{ formset.management_form }}
{% for row in formset %}
    {{ row.field1 }}
    {{ row.field2 }}
    {{ row.field3 }}
{% endfor %}

Я получаю [u'ManagementForm данные отсутствуют или были подделаны '].

Поля с 1 по 3 точно соответствуют модели, которую я хочу сохранить. Я действительно не могу понять это!

Моя трассировка показывает это:

GET    No GET data
POST   Variable              Value
       form-0-field1         u'3'
       form-0-field2         u'3'
       form-0-field3         u'3'

Какие же значения я использовал в первых двух примерах (и которые сохранены правильно).

2 ответа

Ваш рендеринг формы не включает в себя дополнительные данные, необходимые для ManagementForm (form-TOTAL_FORMS, form-INITIAL_FORMS а также form-MAX_NUM_FORMS)

См.: https://docs.djangoproject.com/en/1.7/topics/forms/formsets/.

Я наконец нашел ответ (в документах), который по совпадению объясняет этот вопрос именно так, как я задал свой вопрос. Третий вариант должен отображать {{ row.id }}, иначе Django создаст ошибку проверки. Пользователь может использовать 'style="display: none;"' во встроенном html, но он должен отображаться.

Вот ссылка: https://docs.djangoproject.com/en/1.7/topics/forms/modelforms/

Проверено и все работает!

Другие вопросы по тегам