доступ к общему полю формы в шаблоне - PullRequest
0 голосов
/ 12 ноября 2011

У меня есть форма с общими полями

forms.py

 class OfferForm(forms.ModelForm):
      class Meta:
           model=Offer

some_views.py

  def add_field(request):
        form = OfferForm()
        #some logic here
        for x in list:
               form.fields[x]=forms.ModelChoiceField(queryset=some_query)
        return render_to_response(template,{'form':form,'list_of_add_field':list}

Итак, в моем шаблоне я хочу сделать что-то вроде этого:

 {%for x in list_of_add_field%}
 Name add field is {{x}}
 Choices:
{%for y in form.{{x}}.choices %}
     <input type="checkbox" name="form.{{x}}.html_name">y </input>
 {%endfor%}
 {%endfor%}

Как это можно сделать? Любая идея ? Спасибо!

1 Ответ

0 голосов
/ 13 ноября 2011

Я вижу, что вы намерены сделать, и здесь мой ответ.Вы должны адаптировать свой код для Django, а не Django для своего кода.Таким образом, чтобы решить вашу проблему, ресурс формы 'prefix' является правильным вариантом:

Вы можете поместить несколько форм Django в один тег.Чтобы дать каждой форме свое собственное пространство имен, используйте аргумент префиксного ключевого слова:

>>> mother = PersonForm(prefix="mother")
>>> father = PersonForm(prefix="father")
>>> print mother.as_ul()
<li><label for="id_mother-first_name">First name:</label> <input type="text" name="mother-first_name" id="id_mother-first_name" /></li>
<li><label for="id_mother-last_name">Last name:</label> <input type="text" name="mother-last_name" id="id_mother-last_name" /></li>
>>> print father.as_ul()
<li><label for="id_father-first_name">First name:</label> <input type="text" name="father-first_name" id="id_father-first_name" /></li>
<li><label for="id_father-last_name">Last name:</label> <input type="text" name="father-last_name" id="id_father-last_name" /></li>

В вашем случае вы можете создать новую форму для каждого X вашего списка.Поместите все новые формы в список с именем formset.Затем в вашем шаблоне вы должны написать цикл формы:

{{for form in formset}}
    ... Here your code for a form ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...