0

フォーム データ (3 ModelChoiceFields ) を収集し、ajax.py でそれらを検証して、データベース操作にデータを使用しようとしています。しかし、投稿をクリックすると、次のようにデータが正しく送信されるようです..

argv    {"form":"Branch=Maint&Env=Staging&Disc=Astronomy"}
Source
argv=%7B%22form%22%3A%22Branch%3DMaint%26Env%3DStaging%26Disc%3DAstronomy%22%7D

しかし、フォームは検証されず、Firebug でチェックインすると、3 つのフィールドすべてで次のエラーが発生します。

有効な選択肢を選択してください。その選択は、利用可能な選択肢の 1 つではありません。

私のテンプレート (必要な jquery および dajax ファイルがスクリプトとして含まれています)

 <form action="" method="post" id = "select_form">

 <div style = "color :white" class="field_wrapper">
      {{ form.as_p }}
 </div>

 <input type="button" value="Display Table" onclick="send_form();"/>
 </form>
 <script type="text/javascript">
    function send_form(){
        Dajaxice.modmap.dispTable(Dajax.process,{'form':$('#select_form').serialize(true)});
    }
 </script>

私のajax.py

@dajaxice_register

def dispTable(request, form):
    dajax = Dajax()
    form = BedSelectForm(deserialize_form(form))

    if form.is_valid():
        dajax.remove_css_class('#select_form input', 'error')
        dajax.alert("Form is_valid(), your username is: %s" %form.cleaned_data.get('Branch'))
    else:
        dajax.remove_css_class('#select_form input', 'error')
        for error in form.errors:
            dajax.add_css_class('#id_%s' % error, 'error')
        dajax.alert("Form is_notvalid(), your error is: %s" % form.errors)

    return dajax.json()

私のフォーム

class BedSelectForm(forms.Form):
Branch = forms.ModelChoiceField(
    label = u'Branch',
    queryset = Result.objects.values_list('branch', flat =True).distinct(),
    empty_label = 'Not Specified',
    widget = forms.Select(attrs = {'onchange' : "Dajaxice.modmap.updatecomboE(Dajax.process, {'optionB':this.value})"})
    )
Env = forms.ModelChoiceField(
    label = u'Environment',
    queryset = Result.objects.values_list('environment', flat =True).distinct(),
    empty_label = 'Not Specified',
    widget = forms.Select(attrs = {'onchange' : "Dajaxice.modmap.updatecomboD(Dajax.process, {'optionE':this.value})"})
    )
Disc = forms.ModelChoiceField(
    label = u'Discipline',
    queryset = Result.objects.values_list('discipline', flat =True).distinct(),
    empty_label = 'Not Specified'

    )

私の他の dajax 関数は正常に動作します。これだけが常にelseブロックに入り、エラーを出力しますが、いつデータが正しい形式で渡されるのかわかりません。

この例http://www.dajaxproject.com/fullform/を参照して、ほぼ同様の動作をエミュレートしようとしています。

4

0 に答える 0