遇到Django的ModelChoiceField“queryset”属性的问题

时间:2012-09-19 18:24:07

标签: python mysql django django-queryset

在django中,默认情况下,模型外键的表单是ModelChoiceField(您可以从中选择所有可能模型的列表)。并且可以使用查询集属性更改它们,例如

//在forms.py

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

但我的情况是我有一个东西列表,而不是一个查询集,并且由于无法将列表转换为查询集,我不知道如何使我的ModelChoiceField类似的选项到我想要的模型列表。 (因为它们默认采用查询集,我假设他们从该查询中获取了一个列表,所以这种事情应该是可能的。)

我尝试了self.fields ['possible_cars'] ._ choices = mylist,但它不起作用。

任何想法的人?

1 个答案:

答案 0 :(得分:2)

假设您的字段采用Car查询集,您可以构建如下内容:

mylist = ['BMW', 'Lamborghini', 'Porsche']
cars = Car.objects.filter(name__in=mylist)
self.fields['possible_cars'].queryset = cars