[Django] auswahlabhängige Anzeige in ChoiceField

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Hallo,

ich möchte eine Auswahl mit ChoiceFields erstellen. Dabei sollen die Einträge im zweiten ChoiceField abhängig von der Auswahl im ersten ChoiceField sein.

Code: Alles auswählen

c_typ = forms.ChoiceField(label='Typ', choices=types)
c_art = forms.ChoiceField(label='Bauart', choices=[('test', 'Test1')])
number = forms.IntegerField(label='Anzahl', max_value=50, min_value=0)
Im Auswahlfeld 2 sollen als Auswahlmöglichkeit alle Überschriften der Beiträge angezeigt werden, die als Typenbezeichnung dem Auswahlfeld 1 entsprechen.
Dazu soll jeweils eine weitere Zeile mit den Auswahlfeldern (2x Auswahl, 1x Anzahl) angezeigt werden, sobald in der letzten Zeile eine Auswahl getroffen wurde.

Hat jemand eine Idee für mich, wie das am einfachsten umzusetzen ist?

Grüße
Mawilo
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Du brauchst JavaScript. Der einfachste Fall wäre, wenn du alle alternativen Auswahllisten überträgst und dann ein Event-Listener am ersten Auswahlfeld je nach Auswahl die passende Liste für das zweite Auswahlfeld setzt. Serverseitig mit Django musst du dafür gar nichts ändern. Sind die Listen recht lang, könnte man diese auch nachträglich per XHR laden, dann müsstest du dafür eine spezielle View-Funktion definieren.

Einen Weg mit einem besonderen Form-Widget kenne ich nicht. Da ist wohl Handarbeit angesagt.

Stefan
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Schade, ich habe gehofft, dass es einen einfacheren Weg gibt ...
Da werde ich mich mal etwas in JavaScript einarbeiten müssen. Da habe ich bisher immer einen Bogen drum gemacht.

Grüße
Mawilo
Antworten