Кто такой Django способ представить formset горизонтально, т.е. одну строку на форму? as_table метод генерирует несколько форм вертикально (с маркировками). Мне нужны поля формы в строках таблицы (одна строка на форму), и маркировки должны быть на вершине. Я ничего не вижу из поля. Этому препятствуют по некоторым причинам?
Я должен разъяснить, что на самом деле хочу таблицу из-за виджета таблицы UI, который я буду использовать. И та таблица должна иметь маркировки в.
Таким образом, моя желаемая структура:
<table>
<thead>
<tr><th>column1</th><th>column2</th></tr>
</thead>
<tbody>
<tr><td>form1.value1</td><td>form1.value2</td></tr>
...
</tbody>
</table>
Возможно, вы захотите попробовать что-то вроде этого http://www.djangosnippets.org/snippets/1442/
{{ formset.non_form_errors.as_ul }}
<table id="formset" class="form">
{% for form in formset.forms %}
{% if forloop.first %}
<thead><tr>
{% for field in form.visible_fields %}
<th>{{ field.label|capfirst }}</th>
{% endfor %}
</tr></thead>
{% endif %}
<tr class="{% cycle row1 row2 %}">
{% for field in form.visible_fields %}
<td>
{# Include the hidden fields in the form #}
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% endif %}
{{ field.errors.as_ul }}
{{ field }}
</td>
{% endfor %}
</tr>
{% endfor %}
</table>
Я предлагаю использовать form.as_ul
и стилизовать его с помощью вашего CSS, чтобы все это было в одной строке. Вы можете сделать это с помощью ul li {display: inline; }
или, конечно, замените класс или ID, если вы не хотите таким образом влиять на все UL.
Вот соответствующий раздел документации Django: http://docs.djangoproject.com/en/dev/topics/forms/#displaying-a-form-using-a-template
Изменить: Чтобы удовлетворить вашу потребность в таблице, вы хотели бы сделать что-то вроде этого ... отредактировать еще.
Трудно поместить все эти формы в таблицу и при этом иметь действующий HTML. Элемент формы может окружать таблицу или находиться внутри
... хотя это, скорее всего, будет работать.
<thead>
<tr>
{% for field in form %}
<th>{{ field.label }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
<tr class="table_row">
<form action="/something/" method="post">
{% for field in form %}
<td>
<table>
<tr><td>{{ field.label }}</td></tr>
<tr><td>{{ field }}</td></tr>
</table>
</td>
{% endfor %}
</form>
</tr>
</tbody>
Похожие вопросы: