2012-11-28 9 views
9

Djangoフォームフィールドこれは文字列のリストを取ります。Django Form文字列のリストのフィールド

このリストを繰り返して、各文字列の新しいモデルオブジェクトを作成します。

私は受け入れる必要があるため、モデルオブジェクトがフォーム送信後 までに作成されていないので、私は、モデル複数選択フィールドを行うことができない、と私は複数選択フィールドを行うことはできません

一連の事前定義されたオプションだけでなく、任意の文字列

誰でもこの方法を知っていますか?

答えて

0

私は解決策を考え出しました。少しハッキリですが、今のところうまくいきます。

フォームデータをつかむした後、私は変数にリストを隠しておく:
event_locations = form_data.get('event_locations', None)

それから私はform_dataからそれを削除するので、Djangoのフォームは、リストを取得したことがない:

if event_locations: 
    del form_data['event_locations'] 

私はインスタンス化私のフォームform_dataと、別にリストを処理する:

f = NewEventForm(form_data) 
... 
for loc in event_locations: 
    #create new models here 

私はこれが直接私が依頼した質問を解決するには、まだDjangoフォームフィールドがリストを持っていないので、リストをフォームに取り込み、それを処理できるビューに渡す方法です。

5

カンマで区切られた通常のテキストフィールドを使用してください。ビューでフォームの送信を処理した後、コンマ文字列をそのフィールドに基づいて分割します。次に、新しいモデルを作成して保存するそれぞれを繰り返します。あまりにも厳しくはありません。

+0

私はこれを考慮しましたが、私のAPIでは大変なことになります。 –

関連する問題