2009-03-09 13 views
2

CSSでフォームのスタイルを設定しようとしています。まず最初に、公式のドキュメント以外の完全な例は見ていないので、ブログのエントリーや記事に感謝します。フォームとdjangoフォームのスタイル値の整形

<input type="text" name="artists" id="id_artists" /> 

私のフォームは、いくつかのフィールドにエラーが含まれている場合は、以前のCharFieldですが値を覚えて行く:

<input type="text" name="artists" value="Pink Floyd" id="id_artists" /> 
今私のフォーム上で、典型的なCharFieldですが、このようなHTMLに翻訳さ

django形式でこの値(value="Pink Floyd")を取得するにはどうすればよいですか?私のフィールドが{{form.artists}}であるといい、フィールドとして{{form.artists}}、ラベルとして{{form.artists.label}}{{form.artists.errors}}および{{form.artists.help_text}}を使用できますが、この値はどうですか?

ありがとうございます!

答えて

4

djangoに依存するのではなく、入力フィールドを作成して自動作成します。以下のような

何か:

<input type="text" name="artists" id="id_artists" value="{{form.artists.title}}" /> 

+0

こんにちはSteerpike、 しかし、私はまだフォームの他のフィールドにエラーがあるときにそれを提供するために、その値を取得する必要があります - それ以外の場合は空白になります。 –

2

を動作するはずですあなたはdataプロパティからフィールドの現在の値を取得できます。

{{ form.artists.data }} 

私は、Djangoのドキュメントは言及を見ることができませんこれは動作しますが、それは動作します...

0

フォームデータに何らかの処理を行うために、フォームクラスに追加の検証を追加します。 djangobook.comから:

from django import forms 

class ContactForm(forms.Form): 
    subject = forms.CharField(max_length=100) 
    email = forms.EmailField(required=False) 
    message = forms.CharField(widget=forms.Textarea) 

    def clean_message(self): 
     message = self.cleaned_data['message'] 
     num_words = len(message.split()) 
     if num_words < 4: 
      raise forms.ValidationError("Not enough words!") 
     return message 

clean_message方法の内には、self.cleaned_data辞書を使用して、指定されたフィールドにアクセスすることができます。この辞書は、検証されたすべてのフォームで使用できます。

フィールドは必ずmessage、それ以外の場合はNoneが返されます。