Django Formularfeld für eine Liste von Strings

9

Ich brauche ein Django-Formularfeld , das eine Liste von Strings aufnimmt.

Ich werde über diese Liste iterieren und für jede Zeichenfolge ein neues Modellobjekt erstellen.

Ich kann kein Modell-Mehrfachauswahlfeld verwenden, weil die Modellobjekte erst nach nach der Formularübertragung erstellt werden, und ich kann kein > Multiple-Choice-Feld , weil ich beliebige Zeichenfolgen akzeptieren muss, nicht nur eine Reihe vordefinierter Optionen.

Weiß jemand, wie man das macht?

    
Clay Wardell 28.11.2012, 21:44
quelle

2 Antworten

0

Ich habe eine Lösung gefunden - ein bisschen hacky, aber es funktioniert jetzt.

Nach dem Ergreifen der Formulardaten stash ich die Liste in einer Variablen:
event_locations = form_data.get('event_locations', None)

Dann entferne ich es aus form_data, damit das Django-Formular die Liste nie bekommt:

%Vor%

Ich instanziiere mein Formular mit form_data und behandle die Liste separat:

%Vor%

Mir ist klar, dass dies die Frage, die ich gestellt habe, nicht direkt löst, weil wir immer noch kein Django-Formularfeld haben, das eine Liste aufnimmt, aber es ist eine Möglichkeit, eine Liste an eine Ansicht zu übergeben, die eine Form annimmt und in der Lage ist damit umgehen.

    
Clay Wardell 29.11.2012, 18:23
quelle
5

Verwenden Sie einfach ein normales Textfeld, das durch Kommas getrennt ist. Nachdem Sie die Formularübergabe in der Ansicht bearbeitet haben, führen Sie eine Komma-Zeichenfolge basierend auf diesem Feld durch. Dann iteriere über jede einzelne, die ein neues Modell erstellt und speichert. Sollte nicht zu schwer sein.

    
Robeezy 28.11.2012 22:30
quelle