我试图在名为SearchForm(forms.Form)
的函数中抽象形式get_filters
的所有过滤逻辑。
get_filters
返回一个Q对象,然后由视图用来过滤实际的查询集。因此,get_filters
不会并且不能知道有关查询集的任何信息:它的工作就是返回一个可以传递给{{1}的过滤器。 }
views.py:
.filter()
forms.py:
def my_view(request):
form = SearchForm(request.GET)
if form.is_valid():
filters = form.get_filters()
Model.objects.filter(filters)
这很好用。但是,我现在需要一个"命令"字段。
我可以使用class SearchForm(forms.Form):
"""
Fields...
"""
def get_filters(self):
"""
filtering logic
"""
return Q(some_filters)
函数中的Q对象执行此操作吗?或者除了打破这种编程模式并在视图中访问get_filters
之外我别无其他?
答案 0 :(得分:0)
而不是get_filter执行order_by,你能看到它吗?
HTTPS