将字段标签放在 django 表中的第一行
Posted
技术标签:
【中文标题】将字段标签放在 django 表中的第一行【英文标题】:putting fields labels in django table in first row 【发布时间】:2021-11-03 23:34:30 【问题描述】:我想:
-
打印第一行的标签
将每个字段的设置为 45 像素
将第一列放在 C 将根据行枚举 1,2,3,... 的位置。
应该是这样的:
V | x1 | x2 | direct | RHS |
---|---|---|---|---|
C1 | field | field | field | field |
C2 | field | field | field | field |
C3 | field | field | field | field |
在 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')
Enviews.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
【讨论】:
以上是关于将字段标签放在 django 表中的第一行的主要内容,如果未能解决你的问题,请参考以下文章