Thomas Kremmel
Thomas Kremmel

Reputation: 14783

django change form field in .html template output

I create a form based on a model , like seen below:

class ContactSelectionForm(forms.ModelForm):

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

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

When I process this view I see at the .html output a field labeled with "Contact". Now I`m wondering whether it is possible to change this output. For example I want to name this field not "Contact" but "Selected Contacts".

This is the form processing part of the .html template:

<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>

If somebody is wondering what ManyToManyByLetter(Contact, field_name="first_name") in the form is, check out http://code.google.com/p/django-ajax-filtered-fields/ . A very helpful many2many javascript library.

Upvotes: 0

Views: 3680

Answers (1)

Ofri Raviv
Ofri Raviv

Reputation: 24823

Did you try setting the fields label? (the docs)

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

Upvotes: 3

Related Questions