django在.html模板输出中更改表单字段

时间:2009-12-30 22:49:34

标签: django django-templates django-forms

我根据模型创建了一个表单,如下所示:

class ContactSelectionForm(forms.ModelForm):

    contacts = ManyToManyByLetter(Contact, field_name="first_name")

    class Meta:
        model = ContactSelection
        exclude = ('created_by',)

当我处理这个视图时,我在.html输出中看到一个标有“Contact”的字段。 现在我想知道是否有可能改变这个输出。例如,我想将此字段命名为“Contact”,而不是“Selected Contacts”。

这是.html模板的表单处理部分:

<form action="{{ request.path }}" method="POST">
        <div> 
            <fieldset class="module aligned"> 
                {% for field in form.visible_fields %}
                    <div class="form-row">
                    {# Include the hidden fields in the form #}
                    {% if forloop.first %}
                        {% for hidden in form.hidden_fields %}
                        {{ hidden }}
                        {% endfor %}
                    {% endif %}

                    {{ field.errors }}
                    {{ field.label_tag }} {{ field }}
                    </div>
                {% endfor %}
                <p><input type="submit" value="Save" /></p>
            </fieldset>
        </div>
    </form>

如果有人想知道表单中的ManyToManyByLetter(Contact,field_name =“first_name”)是什么,请查看http://code.google.com/p/django-ajax-filtered-fields/。一个非常有用的many2many javascript库。

2 个答案:

答案 0 :(得分:3)

您是否尝试过设置字段标签? (the docs)

contacts = ManyToManyByLetter(Contact, field_name="first_name", label="Selected Contacts")

答案 1 :(得分:-3)

也许这个

<label for="myFIELD">...</label><input id="myFIELD" type="text" name="my_field" />

文档中的部分内容对您有所帮助