Создание идентификаторов элементов формы в шаблоне формы в Django - PullRequest
1 голос
/ 13 января 2012

Я новичок в Django, и я пытаюсь создать форму, которая содержит таблицу с раскрывающимися списками.Это для создания сценария на основе выбора пользователя в этих раскрывающихся списках при нажатии кнопки «Отправить».

Проблема заключается в следующем шаблоне формы, создающем дубликаты идентификаторов элементов формы

Как создать уникальные идентификаторы в шаблоне формы, даже если выпадающие списки будут повторяться.

Ниже приведен код раскрывающегося списка.

<html>
<table border="1">
  <form action="/PrintTestScript/" method="post">
  {% csrf_token %}
  <tr>
    <th>Action</th>
    <th>Endpoint</th>
    <th>Status</th>
    <th>Box Type</th>
  </tr>
  {% for i in 0123456789|make_list %}
  <tr>
    <td>
       {{form.action}}
    </td>
    <td>
       {{form.series}}
    </td>
    <td>
       {{form.epstatus}}
    </td>
    <td>
       {{form.boxtype}}
  </tr>
  {% endfor %}
  <tr>
    <td>
      <input type="submit" value="Submit" />
    </td>
  </tr>
 </form>
 </table>
 </html>

Ниже приведено определение класса формы.

  class TestForm(ModelForm):
      action = forms.ModelChoiceField(queryset=actions.objects.all(), empty_label="")
      series = forms.ModelChoiceField(queryset=endpoints.objects.all(), empty_label="")
      epstatus = forms.ModelChoiceField(queryset=status.objects.all(), empty_label="")
      boxtype = forms.ModelChoiceField(queryset=boxtype.objects.all())

      class Meta:
          model = endpoints
          exclude = ('end_point_alias', 'dial_num', 'ip_address')

Здесь создается представление

def getvals(request):
      form = TestForm()

      return render_to_response('main.html', {'form':form}, context_instance=RequestContext(request))

Спасибо за помощь.

1 Ответ

2 голосов
/ 13 января 2012

Вам необходимо поместить тег <form> в цикл for, чтобы на самом деле вы создали 10 различных форм вместо 10 копий одних и тех же элементов формы.Но у вас все еще есть проблема, что вам потребуется 10 отдельных кнопок отправки.Если вы действительно ищете список форм, ознакомьтесь с документацией Django FormSet .

...