Custom Label in Django Formset
13,215
You can use the label
argument in your form:
class MySingForm(forms.Form):
song = forms.CharField(label='What song are you going to sing?')
...
If you are using 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
Update:
(@Daniel Roseman's comment)
Or in the model (using verbose_name
):
class Sing(models.Model):
song = models.CharField(verbose_name='What song are you going to sing?',
max_length=50)
...
or
class Sing(models.Model):
song = models.CharField('What song are you going to sing?', max_length=50)
...
Author by
Eva611
Updated on July 02, 2022Comments
-
Eva611 almost 2 years
How do I add custom labels to my formset?
<form method="post" action=""> {{ formset.management_form }} {% for form in formset %} {% for field in form %} {{ field.label_tag }}: {{ field }} {% endfor %} {% endfor %} </form>
My model is:
class Sing(models.Model): song = models.CharField(max_length = 50) band = models.CharField(max_length = 50)
Now in the template instead of the field label being
'song'
, how do i set it so that it shows up as'What song are you going to sing?'
? -
Eva611 almost 13 yearsi get
TypeError: __init__() got an unexpected keyword argument 'label'
-
Daniel Roseman almost 13 years
label
should beverbose_name
, or just use the first positional argument. -
manji almost 13 yearsAnswer updated.
label
argument is used only withForm
fields notModel
fields (my mistake). Can you post your form definition so that I can give you a 100% working solution? -
Eva611 almost 13 yearsI was using ModelForm
class SingForm(ModelForm): Class Meta: model = Sing
-
manji almost 13 yearsThe solution with
verbose_name
in model field should do the trick.