размещение меток полей в таблице django в первой строке

#django #django-rest-framework #django-views #django-forms #django-templates

Вопрос:

Я хочу:

  1. распечатайте этикетку в первом ряду
  2. установите для каждого поля значение 45 пикселей
  3. поместите первый столбец, в котором C будет перечислять 1,2,3,… в соответствии со строками.

это должно быть что-то вроде этого:

V x1 x2 прямой правая сторона
C1 поле поле поле поле
C2 поле поле поле поле
C3 поле поле поле поле

в теле page.html:

 <table>
    {% for form in formset  %}
        <tr> {{ form.label }}
            {% for item in form %}
                <td style="width:10px; text-align: center">{{ item }}</td>
                    {% if not item.label_tag = 'direction' %}
                        ...do something...
                    {% endif %}
            {% endfor %}
        </tr>
    {%  endfor %}
</table>
 

в forms.py:

 class linprog_vars(forms.Form):
    x1 = forms.FloatField(label='x1')
    x2 = forms.FloatField(label='x2')
    direct = forms.CharField(label='direct')
    rhs = forms.FloatField(label='rhs')
 

Ru views.py

 def linprog(request):
    extra_lines = 3
    formset = formset_factory(linprog_vars, extra=extra_lines)
    context = {'formset': formset}
    return render(request, 'linprog/linprog.html', context)
 

Ответ №1:

Что-то вроде этого, я думаю (непроверено). Набор форм-это список похожих форм, поэтому метки для всех них обычно будут одинаковыми. Поэтому просто повторите действия над полями в первом, formset.0 выбирая метки полей.

 <table> 
  <thead>
  <tr>
    {% for field in formset.0 %} 
      <th style="..."> {{ field.label }} </th>
    {% endfor %}
  </tr>
  </thead>
  ...etc as in question