20

サクサクした形のラベルを取り除く正しい方法があるかどうか誰かが知っていますか?

私はこれまで得ました:

self.fields['field'].label = ""

しかし、それはあまり良い解決策ではありません。

4

6 に答える 6

47

ただ行う:

self.helper.form_show_labels = False

すべてのラベルを削除します。

于 2014-07-09T16:09:49.897 に答える
19

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>
于 2015-07-09T07:19:15.850 に答える
9

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-フォーム

于 2012-07-17T13:26:44.813 に答える
5

以下の解決策では、通常のコントロールまたはクリスピーなコントロールの両方からラベルを削除できます。ラベルテキストが消えるだけでなく、ラベルによって使用されていたスペースも削除されるため、空白のラベルがスペースを占有してレイアウトを台無しにすることはありません。

以下のコードは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が示したコードスニペットでどのような問題が発生したかはわかりませんが、コード行を適切な場所に配置していなかった点が異なります。これは最良かつ最も単純な解決策のようです。

于 2018-10-22T15:30:56.737 に答える
4

入力から一部のラベルを削除するだけの場合は、モデル定義でラベル名を明示的に指定しないでください。

field = models.IntegerField("",null=True)
于 2014-02-04T10:16:48.130 に答える
0

すべてのラベルを削除するには:

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'
        ),
于 2021-06-11T12:41:16.663 に答える