There are multiple ways to do it.
有多种方法可以做到这一点。
1) 你可以在模型字段的定义中添加help_text,就像
Bobort在上面的评论中说的那样:
class GroupMessage(Message):
group = models.ForeignKey(Group, related_name='+', help_text='Some text')
如果您希望保持此帮助文本不变,无论使用哪个ModelForm,可以使用此方法。例如,您可以为GroupMessage模型创建两个ModelForm表单,它们都将具有来自该模型的help_text。
2)您可以在表单字段中覆盖模型字段,如下所示:
class GroupForm(ModelForm):
group = forms.ModelChoseField(label='Group', help_text='Some text')
class Meta:
model = GroupMessage
这种方式在您需要更改的不仅是help_text,而是例如标签、查询集或字段类型时非常有用。
3) 您可以像上面的
laffuste一样进行操作:
class GroupForm(ModelForm):
class Meta:
model = GroupMessage
help_texts = {
'group': 'Group to which this message belongs to',
}
如果您只想更改一个或多个字段的帮助文本,则此方法很有用。
4)另一种方法类似于您所做的:
class GroupForm(ModelForm):
class Meta:
model = GroupMessage
def __init__(self, *args, **kwargs):
super(GroupForm, self).__init__(*args, **kwargs)
self.fields['employees'].help_text = 'Some text'
但是这个解决方案需要进行一些澄清。如果您将在模板中使用此表单,就像这样:
{% for field in form %}
{{ field }}
{{ field.help_text }}
{% endfor %}
“这没问题。但是例如,在某些情况下:”
{% for field in form.visible_fields %}
{{ field }}
{{ field.help_text }}
{% endfor %}
因为BoundField中的help_text在你自己设置它之前就已经被填充,所以help_text将为空。因此解决方法是在__init__
中添加self['employees'].help_text = 'Some text'
,或者在模板中使用{{ field.field.help_text }}
。
这个解决方案在需要按条件设置help_text的情况下非常有用,例如如果特定参数被传递给表单初始化或者其他情况下。
希望这会帮助某些人。
help_text
的东西。然后尝试一下,help_text='您的帮助信息'
。顺便说一句,您不应该使用_
作为类名。_
用于保护方法/变量。 - Sławek Kabik