0
の検証私はこの現在のフォームを持っている:ジャンゴModelChoiceField、動的なクエリセット
class PersonForm(forms.Form):
article = forms.CharField(required=False)
workshop = forms.ModelChoiceField(queryset=Program.objects.none(),
empty_label="----",
required=False,
label='Atelier')
def __init__(self, *args, **kwargs):
super(PersonForm, self).__init__(*args, **kwargs)
article = self.initial.get('article', None)
if article:
a = Article.objects.get(pk=article)
if a.workshop:
self.fields['workshop'].queryset = Program.objects.filter(event=a.event, workshop=True)
self.fields['workshop'].required = True
self.helper.layout.insert(4, Row1Field('workshop',))
すべてのワークショップを取得するために使用されるクエリセットがModelChoiceField内部クエリセットの属性がProgram.objects.none()
に設定されているので、動的であり、かつ動的なクエリセットフォームの__init__
メソッド内で行われます
すべて正常に動作しています:選択内のworkshop
に表示される値はすべてokです。しかし、私がフォームを投稿すると、妥当性検査のエラーがあります:'Select a valid choice. This choice is not among available choices.'
何かが欠落していますか?
あなたの意見を示してください。 – Alasdair