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_inlineerror_text_inlineを同じ値に設定できないためです。help_text_inlineに設定する場合は、 に設定するTrue必要があります。そうしないと、フォームエラーが発生した場合に表示するために、ヘルプテキストメッセージが表示されません。error_text_inlineFalse

ここまで詳しく考えたことがありませんでした。したがって、おそらく最善の方法は、ログ警告を追加して、ユーザーに注意するように伝えることです。1 つが設定されている場合は、他のフラグのデフォルトの動作を自動的にオーバーライドする可能性があります。私は提案を受け入れます。

于 2012-11-09T15:17:28.797 に答える