Пользовательские метки в Django Formset - PullRequest
5 голосов
/ 10 мая 2011

Как добавить пользовательские метки в мою форму?

<form method="post" action="">

    {{ formset.management_form }}
    {% for form in formset %}
        {% for field in form %}
            {{ field.label_tag }}: {{ field }}
        {% endfor %}
    {% endfor %}
</form>

Моя модель:

class Sing(models.Model):
song = models.CharField(max_length = 50)
band = models.CharField(max_length = 50)

Теперь в шаблоне вместо метки поля 'song', как мне установить его так, чтобы он отображался как 'What song are you going to sing?'?

1 Ответ

18 голосов
/ 10 мая 2011

Вы можете использовать аргумент label в своей форме:

class MySingForm(forms.Form):
    song = forms.CharField(label='What song are you going to sing?')
    ...

Если вы используете ModelForms:

class MySingForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MySingForm, self).__init__(*args, **kwargs)
        self.fields['song'].label = 'What song are you going to sing?'

    class Meta:
        model = Sing

Обновление:

( @ Комментарий Даниэля Роземана )

Или в модели (с использованием verbose_name):

class Sing(models.Model):
    song = models.CharField(verbose_name='What song are you going to sing?',
                            max_length=50)
    ...

или

class Sing(models.Model):
    song = models.CharField('What song are you going to sing?', max_length=50)
    ...
...