Джанго: [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/
Проверено и все работает!