Ich arbeite mit Python2 und Django 1.9.Django-Formular: "Wählen Sie eine gültige Auswahl. Diese Auswahl ist keine der verfügbaren Optionen."
Grundsätzlich habe ich ein Formular, das zwei Dropdown enthält. Das zweite Dropdown hängt vom Wert des ersten ab.
Zum Beispiel, wenn Dropdown # 1 die Option "Category" ausgewählt hat, sollte Drop-down # 2 die Optionen "CategoryA, CategoryB und CategoryC" anzeigen. Wenn im Drop-down-Menü 1 die Option "Abteilung" ausgewählt ist, sollte in Dropdown-Liste 2 "Abteilung1, Abteilung2, Abteilung3" angezeigt werden.
Beachten Sie, dass sowohl "Departments" als auch "Categories" Klassen mit ihren entsprechenden Datenbanktabellen sind.
Also hier kommt meine Frage. Wie definiere ich dieses Formular? Genauer gesagt, wie gebe ich an, dass das zweite Formular manchmal Objekte aus der Klasse Category
und manchmal Objekte der Klasse Department
anzeigen wird?
Dies ist, was ich bisher:
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())
Beachten Sie, wie ich dropdodown2
definiert haben:
dropdown2 = forms.ModelChoiceField(
queryset=Department.objects.none())
Wie soll ich den Wert des Parameters queryset
für dropdown2
definieren? Da ich die Klasse angeben muss, die abgefragt werden soll, um die Liste aller Instanzen zu erhalten, wie soll ich das tun?
Momentan lade ich den Inhalt von dropdown2 mit JQuery. Aber wenn ich den "send" -Button drücke, um die Post-Daten zu senden, bekomme ich immer den Fehler: "Wähle eine gültige Wahl. Diese Wahl ist keine der verfügbaren Wahlmöglichkeiten."
Danke @raphv, aber ich bin nicht sicher, was „MyModel“ für stehen sollte ? Was sollte ich stattdessen tun? – Xar
@Xar, sollte es wie 'Department.objects.filter (somefield = self.data ['selected_value'])' sein – Todor