2012-02-10 11 views
0

私はdjangoのフォームを使用しようとしていますが、私は "空白のラベル"でフォームをレンダリングすることに興味があります。djangoは空白のラベルを作成します

ような何か:

class SearchForm(forms.Form): 
    q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="Search") 

、その後、私は

{{form.as_p}} 

を使用して、私のHTMLでフォームをレンダリングしかし、私はこの迷惑な「検索:」を持っている私のHTMLに表示されて、私はいけません欲しいです。

q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'})) 

しかし、これは "Q:"と出力されますが、これはデフォルトのラベルと思われます。ラベルをレンダリングする必要はないとdjangoにどのように伝えますか?

多くのありがとうございます。

+0

OK回答を見つけました。 htmlのフィールドに直接名前 "q"を渡す方が良いでしょう。 – JohnJ

+1

また、ラベルタグを省略してフィールドごとにフォームフィールドをレンダリングすることもできます。 – szaman

+0

何を意味するのですか?たとえば、私はを使用しました。より良いのは、django固有のコードを使用することです:name = "q"ではなく{{form.q}}のようなもので、これが可能かどうか疑問に思っていました。私は{{form.q}}、{{form.data.q}}などを試みましたが、どれも動作しませんでした。 – JohnJ

答えて

1

この例をチェックアウト、それはそれを使用する方法を明確にする必要がありますhttps://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template

あなたは{{form.q}}が動作しませんか?

+0

Szaman ..そうです。私はドキュメントを見ました。何らかの理由で{{form.q}}が動作しません。このフォームが実際に乾草にあることに言及する価値がある。だから私はそれを "q"と呼んでもうまくいくようですが、{{form.q}}は動作しません。奇妙な。 – JohnJ

+0

Szaman、実際に{{form.q}}は動作します。私はすべてのモジュールをリロードしなければならなかった。しかし、例えば、私は{{form.q}}入力ボックスのスタイルが気に入らず、自分の入力ボックスを持っています: 。ここでは、name = qを使用し、すべてが期待通りに機能します。私がname = "{{forms.q}}"を使用した場合、それは仕事量です。このような状況ではname = qを使用していますか?ありがとう。 – JohnJ

+0

手作業で入力したタグと、djangoがform.qを使ってレンダリングしたものとの違いは何ですか?すべてのフォームフィールドをニーズに合わせて調整することができ、手動で入力タグを入力する必要はありません。 – szaman

0

あなただけ行うことができます:

ちょうど空の文字列にラベルを設定します
class SearchForm(forms.Form): 
    q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="")