我在Django应用程序上有这样一个表单:
class CustomForm(forms.Form):
field1 = forms.ModelChoiceField(queryset=ModelA.objects.filter(type=A))
field2 = forms.ModelChoiceField(queryset=ModelA.objects.filter(type=B))
调试工具栏告诉我在ModelA上有两个重复的查询,但是过滤条件不同。这是虫子吗?。另外,我想知道是否有一种方法可以优化这个案例,只做一个查询
谢谢!你知道吗
ModelA.objects.filter(type=A)
和ModelA.objects.filter(type=B)
是两个独立的查询集,因此需要两个查询。你知道吗理论上,你可以
它将获取所有对象,其中
type=A
或type=B
。然后可以用Python过滤列表。然而,这并不一定会有更好的表现。您将无法再使用ModelChoiceField
,因此您的代码将更加复杂。你知道吗相关问题 更多 >
编程相关推荐