ich diese aktuelle Form haben:Django ModelChoiceField, Validierung für dynamische queryset
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',))
Die queryset verwendet, um alle Workshops abzurufen ist dynamisch, so dass die queryset Attribut innerhalb des ModelChoiceField zu Program.objects.none()
gesetzt ist, und die dynamische queryset erfolgt innerhalb der __init__
Methode
Alles funktioniert gut: alle Werte für workshop
innerhalb der Auswahl sind in Ordnung. Aber wenn ich das Formular poste, gibt es einen Validierungsfehler: 'Select a valid choice. This choice is not among available choices.'
Gibt es etwas, das ich vermisse?
Bitte zeigen Sie Ihre Ansicht. – Alasdair