2011-07-14 160 views
0

我需要对object_list视图中的某些实例进行快速更改,我选择使用某种级别的渐进式扩展来完成此操作,这些渐进式扩展使用object_list中每个对象的表单放弃寻找这样的事情:从模板中的给定实例实例化模型

<ul> 
{% for column in columns %} 
<li class="{% if not column.is_available %}disabled{% endif %}"> 
    <h3>{{column.pk}}. <a href="/column/{{column.pk}}">{{column.name}}</a></h3> 
    <a href="/column/{{column.pk}}">Registros con esta columna</a> 
    <form action="/column/{{column.pk}}" method="post" class="column_form"> 
    {% csrf_token %} 
    <input type="hidden" name="object_id" value="{{column.pk}}"/> 
    <input type="hidden" name="name" value="{{column.name}}"/> 
    <input type="hidden" name="label" value="{{column.label}}"/> 
    ... 
    {{ column_form.data_type }} 
    <label>geográfico</label><input type="checkbox" name="has_geodata" {% if column.has_geodata %}checked{% endif %}/> 
    <label>disponible</label><input type="checkbox" name="is_available" {% if column.is_available %}checked{% endif %}/> 
    {% if columns.has_geodata %} 
    {{columns_form.geodata_type}}  
    {% endif %} 
    </form> 
</li> 
{% endfor %} 
</ul> 

美中不足的是,我没有一个简单的方法对象的实例传递给窗体类模板的for循环,因此对每个字段的正确值。

有没有适当的方法来处理这种情况?

我应该让这种内联形式?

回答

0

您可以创建一个模板标签,它接受您的对象实例,然后将该表单添加到上下文中,或者将表单呈现到位。

+0

在视图中完成此操作并将实例化模型形式的列表传递给模板而不是对象列表。 – tutuca

+0

很高兴你明白了。 – Brandon