Django: Wie kann ich ein Mehrfachauswahlformular erstellen?

8

Ich bin Anfänger in Django / Python und ich muss ein Mehrfachauswahlformular erstellen. Ich weiß, es ist einfach, aber ich kann kein Beispiel finden. Ich weiß, wie man ein CharField mit einem Widget erstellt, aber ich werde von allen Optionen in den Feldern verwirrt .py .

Zum Beispiel weiß ich nicht, welche der folgenden für ein Mehrfachauswahlformular am besten ist.

%Vor%

Und hier ist die Form, die ich erstellen muss.

%Vor%

BEARBEITEN:

Noch eine kleine Frage. Wenn ich zu jeder Option ein weiteres Attribut wie Daten hinzufügen möchte:

%Vor%

Wie kann ich es tun?

Danke für jede Hilfe!

    
CodeArtist 13.03.2013, 18:07
quelle

5 Antworten

23

Ich denke CheckboxSelectMultiple sollte funktionieren. Je nach Ihrem Problem, In Ihrem forms.py Wirite der folgende Code

%Vor%

EDIT: Ich dachte daran, den kompletten Code-Flow zu schreiben, damit du es besser verstehen kannst. Weil du vielleicht verwirrt wirst

Definieren Sie in Ihrer Sichten.py die folgende Funktion

%Vor%

In Ihrer render_country.html

%Vor%

Ich hoffe, das hilft. Lassen Sie mich wissen, ob es das ist, was Sie erwartet haben.

    
vibhor 13.03.2013, 18:41
quelle
4

Ich habe es so gemacht:

forms.py

%Vor%

urls.py

%Vor%

Ihre_Länder.html

%Vor%

Es funktioniert gut in meinem Beispiel, Wenn Sie etwas mehr brauchen, fragen Sie mich einfach !!

    
prog.Dusan 13.03.2013 18:49
quelle
2

In Bezug auf meine zweite Frage ist dies die Lösung. Eine erweiterbare Klasse:

%Vor%

Beispiel:

%Vor%     
CodeArtist 18.03.2013 13:04
quelle
1

ModelMultipleChoiceField ist dein Freund. Ein CharField ist in der Lage, eine Auswahl zu speichern, aber nicht mehrere, ohne zusätzliche Arbeit, die ich empfehlen würde.

API-Dokument für ModelMultipleChoiceField

    
Brandon 13.03.2013 18:14
quelle
1

Sie können das Feld Länder in Ihrer Formularklasse auch als

definieren %Vor%

Ich weiß nicht, welcher in SelectMultiple und CheckboxSelectMultiple besser ist, aber es funktioniert auch.

Für weitere Details können Sie die django-Dokumentation über Widgets verwenden.

    
Navjot Gwal 06.04.2016 10:39
quelle