【问题标题】:Running into issues with Django's ModelChoiceField "queryset" attribute遇到 Django 的 ModelChoiceField “queryset”属性问题
【发布时间】:2012-09-12 02:41:17
【问题描述】:

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

//在forms.py中

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

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

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

各位有什么想法吗?

【问题讨论】:

    标签: python mysql django django-queryset


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 2013-09-15
      • 2020-10-31
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多