2011-01-13 17 views
0

djangoのdjango.contrib.localflavor.au.formsを入力してフォーム入力を検証するのに問題があります。Djangoオーストラリアのローカルフレーバーフォームの妥当性確認

私はフォームウィジェットを使用するいくつかの方法を試したが、成功しなかった。フォームは表示されますが、検証されません。私は間違いをしている可能性が非常に高いですが。 私のフォームコードは、カスタムウィジェットを使って次のようになります。 Djangoのバージョンは1.2.3です

from django.contrib.localflavor.au.forms import AUStateSelect, AUPostCodeField, AUPhoneNumberField 
...  
class ContactForm(ModelForm): 
     class Meta: 
      model = Contact 
      fields = ('name', 'state') 
      widgets = { 'state': AUStateSelect() } 
      exclude = ['created'] 

私はまたこの方法でカスタムフォームフィールドを使用してみました。

from django.contrib.localflavor.au.forms import AUStateSelect, AUPostCodeField, AUPhoneNumberField 
... 
    class ContactForm(ModelForm): 
     class Meta: 
      model = Contact 
      exclude = ['created'] 
     state = AUStateSelect() 

どちらのバージョンにも選択ウィジェットは表示されません。 AUPostCodeFieldまたはAUPhoneNumberFieldウィジェットでも検証は行われません。

これはデータベースにデータを追加し、有効な入力を確認するために使用するコードです。

def addContact(request): 
    if request.method == 'POST': 
     contactForm = ContactForm(request.POST) 

     if contactForm.is_valid(): 
     contactForm.save() 

    return HttpResponseRedirect('scrapyard.views.main') 

ありがとうございました。

+0

米国のlocalflavorを一時的に置き換えて、コードやAUのローカルフレーバにバグがあるかどうかをテストすることができます。 – Seth

+0

どのdjangoのバージョンを使用していますか? 'Meta'クラスの' widgets'属性にはdjango> = 1.2が必要です! –

+0

'AUStateSelect'は検証をしないウィジェットですが、あなたが言及している他の2つのクラスはFIELDクラスです! –

答えて

2
class ContactForm(ModelForm): 
     class Meta: 
      model = Contact 
      exclude = ['created'] 
      widgets = { 'state': AUStateSelect() } 

この注文が関与しているかどうかにかかわらず、このセグメントは魅力的に機能しましたか。 明らかに私の代わりにサイト上。

ありがとうございました。