Django将Q对象与order_by结合在一起

时间:2015-11-17 18:06:14

标签: python django django-q

我试图在名为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之外我别无其他?

1 个答案:

答案 0 :(得分:0)

而不是get_filter执行order_by,你能看到它吗?

HTTPS