1

django では、デフォルトでモデルの外部キーのフォームは ModelChoiceField です (可能なすべてのモデルのリストから選択できます)。そして、これらをクエリ セット属性で変更することができます。

// forms.py 内

self.fields['possible_cars'].queryset = somequeryset

しかし、私はクエリセットではなくもののリストを持っている状況にあり、リストをクエリセットに変換する方法がないため、ModelChoiceField のオプションをリストに似たものにする方法がわかりません私が欲しいモデルの。(彼らはデフォルトでクエリセットを取得するので、とにかくそのクエリからリストを取得すると想定しているので、このようなことが可能になるはずです)。

self.fields['possible_cars']._choices = mylist を試しましたが、うまくいきません。

アイデアはありますか?

4

1 に答える 1

2

フィールドがクエリセットを取ると仮定するとCar、次のように作成できます。

mylist = ['BMW', 'Lamborghini', 'Porsche']
cars = Car.objects.filter(name__in=mylist)
self.fields['possible_cars'].queryset = cars
于 2012-09-19T18:40:09.897 に答える