1

对于以下型号:

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,但这不是我想要的。

如何让 help_text 显示self.helper.help_text_inline = True

base.html 完全正确,包含所有引导文件。

4

1 回答 1

2

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

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

于 2012-11-09T15:17:28.797 回答