Форум сайта python.su
FerromanКонечно что пробовал.
Послушай “чувак”, следи за разговором.
Повторяю вопрос ещё раз, для медленных: Ты пробовал сделать так, как в моём посте? Твой код, от моего вообще ничем не отличается.
Офлайн
Странно. Можешь показать код, как пробовал?
Какая версия джанги?
Офлайн
FerromanКороче забей, я вижу ты не понимаешь что мне надо, а мне впадло третий раз обяснять.
Странно. Можешь показать код, как пробовал?
Какая версия джанги?
Офлайн
Нет, давай всё-таки разберёмся.
Твой вопрос:
все екстра форми в FormSet всегда пустые, а мне нужно чтобы некоторые поля в екстра форме были заполнены начальными значениямиОтвет есть в документации, я его тебе дал.
количество словарей в mx_data определяет количество форм в формсете, а екстра форм будет всегда то количситво которое указано в extra параметре и они будут пустыеПосле замечания, начинаешь нести какой-то маразм о
В дукументации про такую возможность не написано это значит что прямими методами оно не реализовуется, и пишу может ктонибудь знает какие нибуть трики как такое сделать.Уже после того как я дал линк на документацию где написано как это сделать.
MxFormSet = formset_factory(MXForm, extra=extra, can_delete=True)
c.mx_formset = MxFormSet(initial=mx_data)
>>> from django import forms
>>> from django.forms.formsets import formset_factory
>>> class MXForm(forms.Form):
... MX = forms.CharField()
... name = forms.CharField()
>>> extra = 6
>>> MxFormSet = formset_factory(MXForm, extra=extra)
>>> # делаем инициирующие словари
>>> mx_data = MxFormSet(initial=[{'name':'main record', 'MX':'main mx'},{'name':'extra initial', 'MX':''}, {'name':'extra init 2', 'MX':'extra form init 2'}])
>>> mx_formset = MxFormSet(initial=mx_data)
>>> for form in mx_formset.forms:
... print form.as_table()
...
<tr><th><label for="id_form-0-MX">MX:</label></th><td><input type="text" name="form-0-MX" value="main mx" id="id_form-0-MX" /></td></tr>
<tr><th><label for="id_form-0-name">Name:</label></th><td><input type="text" name="form-0-name" value="main record" id="id_form-0-name" /></td></tr>
<tr><th><label for="id_form-1-MX">MX:</label></th><td><input type="text" name="form-1-MX" value="" id="id_form-1-MX" /></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th><td><input type="text" name="form-1-name" value="extra initial" id="id_form-1-name" /></td></tr>
<tr><th><label for="id_form-2-MX">MX:</label></th><td><input type="text" name="form-2-MX" value="extra form init 2" id="id_form-2-MX" /></td></tr>
<tr><th><label for="id_form-2-name">Name:</label></th><td><input type="text" name="form-2-name" value="extra init 2" id="id_form-2-name" /></td></tr>
<tr><th><label for="id_form-3-MX">MX:</label></th><td><input type="text" name="form-3-MX" id="id_form-3-MX" /></td></tr>
<tr><th><label for="id_form-3-name">Name:</label></th><td><input type="text" name="form-3-name" id="id_form-3-name" /></td></tr>
<tr><th><label for="id_form-4-MX">MX:</label></th><td><input type="text" name="form-4-MX" id="id_form-4-MX" /></td></tr>
<tr><th><label for="id_form-4-name">Name:</label></th><td><input type="text" name="form-4-name" id="id_form-4-name" /></td></tr>
<tr><th><label for="id_form-5-MX">MX:</label></th><td><input type="text" name="form-5-MX" id="id_form-5-MX" /></td></tr>
<tr><th><label for="id_form-5-name">Name:</label></th><td><input type="text" name="form-5-name" id="id_form-5-name" /></td></tr>
<tr><th><label for="id_form-6-MX">MX:</label></th><td><input type="text" name="form-6-MX" id="id_form-6-MX" /></td></tr>
<tr><th><label for="id_form-6-name">Name:</label></th><td><input type="text" name="form-6-name" id="id_form-6-name" /></td></tr>
<tr><th><label for="id_form-7-MX">MX:</label></th><td><input type="text" name="form-7-MX" id="id_form-7-MX" /></td></tr>
<tr><th><label for="id_form-7-name">Name:</label></th><td><input type="text" name="form-7-name" id="id_form-7-name" /></td></tr>
<tr><th><label for="id_form-8-MX">MX:</label></th><td><input type="text" name="form-8-MX" id="id_form-8-MX" /></td></tr>
<tr><th><label for="id_form-8-name">Name:</label></th><td><input type="text" name="form-8-name" id="id_form-8-name" /></td></tr>
все екстра форми в FormSet всегда пустые, а мне нужно чтобы некоторые поля в екстра форме были заполнены начальными значениями
Офлайн
FerromanНе понимаю что ты хтел этим доказать, так как твой код какраз и доказывает то что я и казал.
Нет, давай всё-таки разберёмся.
Твой вопрос:все екстра форми в FormSet всегда пустые, а мне нужно чтобы некоторые поля в екстра форме были заполнены начальными значениямиОтвет есть в документации, я его тебе дал.
Ты же пишешь явный бред сивой кобылы, но с умным видом :количество словарей в mx_data определяет количество форм в формсете, а екстра форм будет всегда то количситво которое указано в extra параметре и они будут пустыеПосле замечания, начинаешь нести какой-то маразм оВ дукументации про такую возможность не написано это значит что прямими методами оно не реализовуется, и пишу может ктонибудь знает какие нибуть трики как такое сделать.Уже после того как я дал линк на документацию где написано как это сделать.
Вот твой код:Ты говоришь что добавление словарей для эктра-форм в initial, как я и ответил во втором посте, не добавляет начальные значения экстра формам.MxFormSet = formset_factory(MXForm, extra=extra, can_delete=True)
c.mx_formset = MxFormSet(initial=mx_data)
Ты же утверждаешь что пробовал так делать.
Значит ты либо лжёшь и не пробовал, либо не достаточно описал задачу.
Я же попробовал:Результат наочно показывает что “некоторые поля в екстра форме были заполнены начальными значениями”. Код аналогичен тому, что я написал раньше.>>> from django import forms
>>> from django.forms.formsets import formset_factory
>>> class MXForm(forms.Form):
... MX = forms.CharField()
... name = forms.CharField()
>>> extra = 6
>>> MxFormSet = formset_factory(MXForm, extra=extra)
>>> # делаем инициирующие словари
>>> mx_data = MxFormSet(initial=[{'name':'main record', 'MX':'main mx'},{'name':'extra initial', 'MX':''}, {'name':'extra init 2', 'MX':'extra form init 2'}])
>>> mx_formset = MxFormSet(initial=mx_data)
>>> for form in mx_formset.forms:
... print form.as_table()
...
<tr><th><label for="id_form-0-MX">MX:</label></th><td><input type="text" name="form-0-MX" value="main mx" id="id_form-0-MX" /></td></tr>
<tr><th><label for="id_form-0-name">Name:</label></th><td><input type="text" name="form-0-name" value="main record" id="id_form-0-name" /></td></tr>
<tr><th><label for="id_form-1-MX">MX:</label></th><td><input type="text" name="form-1-MX" value="" id="id_form-1-MX" /></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th><td><input type="text" name="form-1-name" value="extra initial" id="id_form-1-name" /></td></tr>
<tr><th><label for="id_form-2-MX">MX:</label></th><td><input type="text" name="form-2-MX" value="extra form init 2" id="id_form-2-MX" /></td></tr>
<tr><th><label for="id_form-2-name">Name:</label></th><td><input type="text" name="form-2-name" value="extra init 2" id="id_form-2-name" /></td></tr>
<tr><th><label for="id_form-3-MX">MX:</label></th><td><input type="text" name="form-3-MX" id="id_form-3-MX" /></td></tr>
<tr><th><label for="id_form-3-name">Name:</label></th><td><input type="text" name="form-3-name" id="id_form-3-name" /></td></tr>
<tr><th><label for="id_form-4-MX">MX:</label></th><td><input type="text" name="form-4-MX" id="id_form-4-MX" /></td></tr>
<tr><th><label for="id_form-4-name">Name:</label></th><td><input type="text" name="form-4-name" id="id_form-4-name" /></td></tr>
<tr><th><label for="id_form-5-MX">MX:</label></th><td><input type="text" name="form-5-MX" id="id_form-5-MX" /></td></tr>
<tr><th><label for="id_form-5-name">Name:</label></th><td><input type="text" name="form-5-name" id="id_form-5-name" /></td></tr>
<tr><th><label for="id_form-6-MX">MX:</label></th><td><input type="text" name="form-6-MX" id="id_form-6-MX" /></td></tr>
<tr><th><label for="id_form-6-name">Name:</label></th><td><input type="text" name="form-6-name" id="id_form-6-name" /></td></tr>
<tr><th><label for="id_form-7-MX">MX:</label></th><td><input type="text" name="form-7-MX" id="id_form-7-MX" /></td></tr>
<tr><th><label for="id_form-7-name">Name:</label></th><td><input type="text" name="form-7-name" id="id_form-7-name" /></td></tr>
<tr><th><label for="id_form-8-MX">MX:</label></th><td><input type="text" name="form-8-MX" id="id_form-8-MX" /></td></tr>
<tr><th><label for="id_form-8-name">Name:</label></th><td><input type="text" name="form-8-name" id="id_form-8-name" /></td></tr>
И так, ты лгал и ничего не пробовал? Если нет, то что же ты понимал под :все екстра форми в FormSet всегда пустые, а мне нужно чтобы некоторые поля в екстра форме были заполнены начальными значениями
Отредактировано (Сен. 30, 2009 12:07:55)
Офлайн
Действительно, я не заметил, что появилось не 6 дополнительных полей, а больше. Извиняюсь за претензию, но проблема действительно была плохо описана.
Офлайн