django将表单与表中列表中的元素组合在一起
我有以下问题。我正在尝试创建一个类似2D数组的表单,您可以在其中为多个对象上的多个特征输入值。这导致在表格中显示单个对象的一组表单,各个表单水平显示 我的模板现在看起来像这样:`django将表单与表中列表中的元素组合在一起,django,django-templates,django-forms,Django,Django Templates,Django Forms,我有以下问题。我正在尝试创建一个类似2D数组的表单,您可以在其中为多个对象上的多个特征输入值。这导致在表格中显示单个对象的一组表单,各个表单水平显示 我的模板现在看起来像这样:` <table id="formset" class="form"> {% for form in formset.forms %} {% if forloop.first %} <thead><tr> <th></ th&g
<table id="formset" class="form">
{% for form in formset.forms %}
{% if forloop.first %}
<thead><tr>
<th></ th>
{% for field in form.visible_fields %}
<th>{{ field.label|capfirst }}</th>
{% endfor %}
</tr></thead>
{% endif %}
<tr class="{% cycle row1,row2 %}">
<td> {{ ?? }} </ td>
{% for field in form.visible_fields %}
<td>
{# Include the hidden fields in the form #}
{% if forloop.first %}
{% for hidden in form.hidden_fields %}
{{ hidden.name }}
{% endfor %}
{% endif %}
{{ field.errors.as_ul }}
{{ field }}
</td>
{% endfor %}
</tr>
{% endfor %}
{formset.forms%%中表单的%
{%if-forloop.first%}
{%form.visible_fields%}
{{field.label | capfirst}}
{%endfor%}
{%endif%}
{{ ?? }}
{%form.visible_fields%}
{#在#表单中包含隐藏字段}
{%if-forloop.first%}
{%用于隐藏在表单中。隐藏的_字段%}
{{hidden.name}
{%endfor%}
{%endif%}
{{field.errors.as_ul}}
{{field}}
{%endfor%}
{%endfor%}
`
这是来自网络的代码。顺便说一句,现在我想做的是在表格前面放一列,其中只有一些文本说明对象的名称,但我似乎无法做到这一点
我试图从列表中添加它们,但问题是无法从列表中访问正确的元素。在列表中循环会导致相同的问题
我还尝试向表单中添加一个隐藏字段,在视图中设置该字段的值,然后尝试使用以下方法恢复它
form.my_field.value
但我似乎无法实际从该字段获取值。我确实设法得到了字段的名称,但无法得到值
我可以想象使用一些javascript来实现这一点,但这实际上是最后的手段。在我看来,像这样基本的东西必须有一个好的服务器端解决方案
有什么想法吗?如果您使用的是Django 1.3,您可以渲染。假设要呈现名为
name
的字段的值:
{{ form.name.value }}
我想可能会有fews解决方案,其中之一是使用现有字段属性,如
name
或description
——然后数据将与字段本身绑定
您可以向表单字段添加自定义属性,并在代码中引用它们
或者使用自定义模板标记,当字段名作为参数传递时,该标记将返回文本:
NAMES = {
'field1': u'my description1',
'field2': u'smthg else'
}
@register.simple_tag
def get_text(name):
return NAMES.get(name, u'--no description--')
谢谢,我还在1.2.3版本,这可能就是它不起作用的原因。干杯