0

これは少し奇妙に聞こえるかもしれません。

アイテムと呼ばれるオブジェクトのリストがあります。これらのそれぞれについて、Mainと呼ばれる別のオブジェクトを作成できるようにしたいと思います。MainにはItemへの外部キーがあります。

MainのModelFormを作成すると、外部キーフィールドに1つのアイテムを選択するオプションが表示されます。

私が欲しいのは、モデルフォームの外部キーフィールドで複数の値を選択できるようなものです。次に、フォームデータを処理するときに、選択ごとに1つのメインオブジェクトを作成します。

フィールドをModelMultipleChoiceFieldにオーバーライドしようとしましたが、データを送信するときにそれを処理する方法が見つからないようです。選択したすべての値を取得するメソッドが見つからないため、ループを開始できます。つまり、ループする前に、選択した値をリストにフェッチします。何かのようなもの:

form = Form(request.POST)
list = form.fields['foreignkey'].values()

for l in list:
    form.fields['foreignkey'] = l
    if form.is_valid():
        form.save()
        ...
    ...

ただし、values()メソッドは存在しないため、...

これが理にかなっていることを願っています...何かアイデアはありますか?

4

1 に答える 1

0
  1. たとえばmultiple_items、FKのデフォルトフィールドを上書きするのではなく、新しいModelMultipleChoiceFieldを追加します。

  2. オーバーライドform.save()して、それぞれのメインを作成しますself.cleaned_data['multiple_items']

于 2012-09-11T08:15:59.960 に答える