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 回答