Я пытаюсь отобразить переменное число полей/полей ввода, созданных с использованием шаблона django (v 1.3). На мой взгляд, я смотрю на таблицу, чтобы получить имена столбцов, а затем создать список forms.CharFields() одного и того же размера, и пронестись их вместе следующим образом:Оказание переменного числа пар текста/полей ввода с шаблонами django
ua_data = [forms.CharField(required=False) for i in range(len(ua_data_field_names))]
ua_fields = zip(ua_data_field_names, ua_data)
ua_field1 = forms.CharField(required=False) # temp field for testing
так, что в конце об этом, контекст содержит что-то вроде этого (только для одного поля):
>>> ua_fields
[(u'Test field', <django.forms.fields.CharField object at 0x108386b50>)]
в моем шаблоне, я бегу следующий цикл:
{% for field in form.ua_fields %}
<tr>
<td>{{ field.0 }}</td>
<td>{{ field.1 }} {{ field.1.errors }}</td>
{#<td>{{ form.ua_field1 }} {{ form.ua_field1.errors }}</td>#}
</tr>
{% endfor %}
это извергает следующее оказанной HTML :
Test field <django.forms.fields.CharField object at 0x1081f1c50>
, тогда как если бы поменять места второй <td>
выше, с закомментированной линией, я на самом деле получить поле ввода вынесенное (ua_field1 является прямой forms.CharField
объекта)
Что мешает поле списка подстановок делать то магия HTML-рендеринг?
Пожалуйста, покажите, как вы определяете 'ua_fields' и' ua_field1'. –
@ DanielRoseman: Добавлено. Благодаря! – kps