django将表单与表中列表中的元素组合在一起

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

我有以下问题。我正在尝试创建一个类似2D数组的表单,您可以在其中为多个对象上的多个特征输入值。这导致在表格中显示单个对象的一组表单,各个表单水平显示

我的模板现在看起来像这样:`

<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版本,这可能就是它不起作用的原因。干杯