私はPython2とDjango 1.9を使っています。Djangoフォーム: "有効な選択肢を選択してください。その選択肢は利用可能な選択肢の1つではありません。"
基本的に私は2つのドロップダウンを含むフォームを持っています。 2番目のドロップダウンは最初のドロップダウンの値に依存します。
例として、ドロップダウン#1に「カテゴリ」オプションが選択されている場合、ドロップダウン#2にはオプション「カテゴリA、カテゴリBおよびカテゴリC」が表示されます。同様に、ドロップダウン#1に "Department"オプションが選択されている場合、ドロップダウン#2には "Department1、Department2、Department3"と表示されます。
「部署」と「カテゴリ」の両方が、対応するデータベーステーブルを持つクラスであることに注意してください。
ここに私の質問が来る。そのフォームを定義する方法は?特に具体的には、第2のフォームでクラスCategory
のオブジェクトと時にはクラスDepartment
のオブジェクトが表示されることを示すにはどうすればよいですか?
これは私がこれまで持っているものです:私はdropdodown2
を定義した方法
class MyClassForm(forms.Form):]
name = forms.CharField(max_length=255)
dropdown1 = forms.ModelChoiceField(
queryset=TypeOfCriteria.objects.all().order_by('name'))
dropdown2 = forms.ModelChoiceField(
queryset=Department.objects.none())
は予告:
dropdown2 = forms.ModelChoiceField(
queryset=Department.objects.none())
私はdropdown2
のパラメータqueryset
の値を定義する必要がありますどのように?すべてのインスタンスのリストを取得するために照会するクラスを指定する必要があるので、どうすればよいですか?
今、私はdropdown2の内容をJQueryで読み込みます。しかし、私がポストデータを送信するために "送信"ボタンを押すと、私はいつもエラーが出ています: "有効な選択肢を選択してください。
は@raphvありがとう、私は「mymodelという」は放置すべきかわからないんだけど?私はそれの代わりに何を置くべきですか? – Xar
@ Xarのように、 'Department.objects.filter(somefield = self.data ['selected_value'])'のようにstmする必要があります。 – Todor