начальное значение empty_form для моделиformset_factory - PullRequest
8 голосов
/ 09 июля 2010

Я пытаюсь добавить начальные значения в пустую форму modelformset_factory.

FormSet = modelformset_factory(MyModel, extra=2)
formset = FormSet(queryset=MyModel.objects.none(), initial=[{'foo': 'bar'}, {'foo': 'bar'}])

Я бы хотел установить начальное значение в formset.empty_form, как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Вы можете добавить начальные значения в ваш набор форм, как четко указано в этом другом ответе . Затем вы можете установить empty_form в шаблоне, например:

<form action="/contact/" method="post">{% csrf_token %}
   {% with formset.empty_form as form %}
      {% for field in form %}
         <div class="fieldWrapper">
            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
         </div>
      {% endfor %}
   {% endwith %}
   <input type="submit" value="Submit" />
</form>
0 голосов
/ 26 февраля 2015

Я не уверен, что это правильный ответ, но быстрый способ сделать эту работу - просто переназначить empty_form той формой, которую вы хотите после инициализации набора форм.

formset = formset_factory(MyClass, **kwargs)
empty = formset.empty_form

# empty is a form instance, so you can do whatever you want to it
my_empty_form_init(empty_form)
formset.empty_form = empty_form

Примечаниечто это перезаписывает свойство empty_form результирующего набора форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...