django-crispy-forms:FormHelper的help_text_inline没有按预期工作

时间:2012-11-08 11:11:04

标签: django-crispy-forms

对于以下型号:

class MyModel(models.Model):
    name = models.CharField(max_length=110, help_text="Some sample help text.")
    def __unicode__(self):
        return u'%s' % (self.name)

以下模型形式:

class MyModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyModelForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.form_id = 'id-myModelForm'
        self.helper.form_class = 'form-horizontal'
        self.helper.form_action = 'my_model_form_url'
        self.helper.form_error_title = 'Form Errors'
        self.helper.help_text_inline = True
    class Meta:
        model = MyModel

使用以下模板:

{% extends "base.html" %}

{% block content %}
    {% load crispy_forms_tags %}
    {% crispy form %}
{% endblock %}

模型中定义的 help_text 根本不会呈现。如果我更改为self.helper.help_text_inline = False而不是self.helper.help_text_inline = True,它会被渲染,但这不是我想要的。

如何使用self.helper.help_text_inline = True显示help_text?

base.html适用于所有包含的引导程序文件。

1 个答案:

答案 0 :(得分:1)

这是因为help_text_inlineerror_text_inline无法设置为相同的值才能工作。如果您将help_text_inline设置为True,则需要将error_text_inline设置为False。如果不这样做,则不会显示帮助文本消息,以便在发生时显示表单错误。

直到现在我还没有详细考虑过这个问题。所以最好的方法是添加一个日志警告,告诉用户要小心这个。如果设置了一个,可能会自动覆盖另一个标志的默认行为。我愿意接受建议。