假设我需要过滤多选框中的可用选项。
在我看来,我有:
class ArticleCheckbox(forms.ModelForm):
article= forms.ModelMultipleChoiceField(queryset=Article.objects.all(),required=False, widget=forms.CheckboxSelectMultiple)
class Meta:
model = Book
fields = ('m2m_article',)
。 在我看来,我将指定:
articleform = ArticleCheckbox()
articleform.fields["m2m_article"].queryset = Article.objects.filter(category = "Animals")
如何在视图中分配查询集会影响类的查询集(Article.object.all())? 它会覆盖吗?我不这么认为。
我想覆盖查询集。我该怎么办?
答案 0 :(得分:0)
这有用吗?
article=forms.ModelMultipleChoiceField(queryset=Article.objects.all().filter(category = "Animals"),required=False, widget=forms.CheckboxSelectMultiple)
直接在模型中。或者您是否希望将过滤保留到视图中以执行不同的操作?
答案 1 :(得分:0)
您执行此操作的方式是正确的,除非您分配类而不是ArticleCheckBox
的实例
articleform = ArticleCheckbox()
当表单初始化时,它被赋予一个默认的查询集并且你要覆盖它,初始的查询集将永远不会查询数据库,因为此时不需要检索任何数据。