16

Djangoで使用しようとしているTextAreaに添付されているラベルを削除するにはどうすればよいですか?この問題に関する情報を見つけようとしていますが、問題に関連する情報が見つからないようです。これは私が私のコードで行っていることです:

class CommentForm(forms.Form):
    comment = forms.CharField(widget=forms.Textarea())

これは、それが生成するHTMLです。

<label for="id_text">Text:</label> 
<textarea id="id_text" rows="10" cols="40" name="text"></textarea>

そのラベルは良くないので、削除する方法が欲しいのですが。そのコードは次の方法で作成されました。

{{ form.as_p }}

(段落タグは無関係なので削除しました)

編集:さらに明確にするために、クラスCommentFormの部分を追加しました。

誰か提案がありますか?

4

6 に答える 6

35

これは、最新バージョン(トランク)のdjangoで動作するはずです。

comment = forms.CharField(label="", help_text="", widget=forms.Textarea())

お役に立てば幸いです。

于 2009-07-03T20:30:22.460 に答える
10

ラベルのカスタマイズに関するDjangoのドキュメントにauto_idは、Formコンストラクターへの引数でオフにできると書かれています。

f = ContactForm(auto_id=False)
于 2009-07-03T20:30:33.050 に答える
4

あなたのフォームでこれを試してください:

def __init__(self, *args, **kwargs):
    self.fields['comment'].label = ''

しかし、新しいバージョンのdjangoの場合、私はIemonadの答えを好みます

于 2014-09-02T09:09:33.207 に答える
2

古いDjangoについてはわかりませんが、新しいDjangoのメタのフォームフィールドラベルを空にできるようになりました

class CustomForm(forms.Form):
    class Meta:
        ...  #other properties such as model, fields, widgets and help text
        labels = {
           'comment' : '',
        }
于 2020-05-20T03:29:21.300 に答える
0

手っ取り早い解決策は、フォームを手動で繰り返し(フォーム%のフィールドの場合は{%}を使用)、「問題のある」フィールドを特別に処理することです。必要に応じて、as_p/as_tableメソッドをオーバーライドすることもできます。

于 2009-07-03T20:55:07.060 に答える
0

これで私のために働いた別の解決策があります

{%for field in form%} {{field.errors}} {%endfor%}
于 2021-10-06T23:06:20.857 に答える