サクサクした形のラベルを取り除く正しい方法があるかどうか誰かが知っていますか?
私はこれまで得ました:
self.fields['field'].label = ""
しかし、それはあまり良い解決策ではありません。
サクサクした形のラベルを取り除く正しい方法があるかどうか誰かが知っていますか?
私はこれまで得ました:
self.fields['field'].label = ""
しかし、それはあまり良い解決策ではありません。
ただ行う:
self.helper.form_show_labels = False
すべてのラベルを削除します。
Boostrapで動作します(ドキュメントを参照)
あなたの形で:
from crispy_forms.helper import FormHelper
from django import forms
class MyForm(forms.Form):
[...]
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_show_labels = False
テンプレート内:
<form method='POST' action=''>{% csrf_token %}
{% crispy form %}
<input type='submit' value='Submit' class='btn btn-default'>
</form>
field.html
テンプレート
を編集できます: https ://github.com/maraujop/django-crispy-forms/blob/dev/crispy_forms/templates/bootstrap/field.html#L7
ラベルのレンダリングを制御する属性をフォームに追加しFormHelper
、そのテンプレートで使用しますif
。カスタムFormHelper
属性は時間がないため、まだ正式に文書化されていませんが、基調講演で話しました。スライドは次のとおりです
。https ://speakerdeck.com/u/maraujop/p/django-crispy-フォーム
以下の解決策では、通常のコントロールまたはクリスピーなコントロールの両方からラベルを削除できます。ラベルテキストが消えるだけでなく、ラベルによって使用されていたスペースも削除されるため、空白のラベルがスペースを占有してレイアウトを台無しにすることはありません。
以下のコードはdjango2.1.1で機能します。
# this class would go in forms.py
class SectionForm(forms.ModelForm):
# add a custom field for calculation if desired
txt01 = forms.CharField(required=False)
def __init__(self, *args, **kwargs):
''' remove any labels here if desired
'''
super(SectionForm, self).__init__(*args, **kwargs)
# remove the label of a non-linked/calculated field (txt01 added at top of form)
self.fields['txt01'].label = ''
# you can also remove labels of built-in model properties
self.fields['name'].label = ''
class Meta:
model = Section
fields = "__all__"
OPが示したコードスニペットでどのような問題が発生したかはわかりませんが、コード行を適切な場所に配置していなかった点が異なります。これは最良かつ最も単純な解決策のようです。
入力から一部のラベルを削除するだけの場合は、モデル定義でラベル名を明示的に指定しないでください。
field = models.IntegerField("",null=True)
すべてのラベルを削除するには:
self.helper.form_show_labels = False
すべてがFalseのときに特定のラベルを表示するには:
HTML('<span>Your Label</span>')
すべてがTrueの場合に特定のフィールドのラベルを無効にするには
self.fields['fieldName'].label = True
例:
Row(
HTML('<span> Upolad Government ID (Adhar/PAN/Driving Licence)</span>'),
Column('IdProof',css_class='form-group col-md-12 mb-0'),
css_class='form-row'
),