Django Formset中的自定义标签
如何将自定义标签添加到表单集中Django Formset中的自定义标签,django,django-templates,django-forms,formset,Django,Django Templates,Django Forms,Formset,如何将自定义标签添加到表单集中 <form method="post" action=""> {{ formset.management_form }} {% for form in formset %} {% for field in form %} {{ field.label_tag }}: {{ field }} {% endfor %} {% endfor %} </form>
<form method="post" action="">
{{ formset.management_form }}
{% for form in formset %}
{% for field in form %}
{{ field.label_tag }}: {{ field }}
{% endfor %}
{% endfor %}
</form>
现在,在模板中,字段标签不是
'song'
,我如何设置它,使其显示为'What song you to sing?
?您可以在表单中使用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
更新:
(@danielroseman的评论)
或者在模型中(使用verbose\u name
):
或
“自定义标签”是什么意思?它们应该是什么样子?它们应该在哪里展示?模板提取的意义是什么?因为不清楚。查看编辑?我得到
TypeError:\uuuu init\uuuuuuuuuuuu()得到一个意外的关键字参数“label”
label
应该是verbose\u name
,或者只使用第一个位置参数。答案已更新label
参数仅用于Form
字段,而不是Model
字段(我的错误)。你能发布你的表单定义,这样我就可以给你一个100%有效的解决方案吗?我使用的是ModelFormclass SingForm(ModelForm):class Meta:model=Sing
模型字段中带有verbose\u name
的解决方案应该可以。
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
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)
...