Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django haystack无法按日期时间过滤_Python_Django_Django Haystack - Fatal编程技术网

Python Django haystack无法按日期时间过滤

Python Django haystack无法按日期时间过滤,python,django,django-haystack,Python,Django,Django Haystack,版本: django haystack(2.6.1) Django(1.11.4) 我正在尝试创建一个搜索表单,下面是tourial: 过滤开始日期后,sqs变为空。 怎么了 forms.py: class DateRangeSearchForm(SearchForm): start_date = forms.DateTimeField(required=False) end_date = forms.DateTimeField(required=False) def

版本:
django haystack(2.6.1)
Django(1.11.4)

我正在尝试创建一个搜索表单,下面是tourial:
过滤开始日期后,sqs变为空。
怎么了

forms.py:

class DateRangeSearchForm(SearchForm):
    start_date = forms.DateTimeField(required=False)
    end_date = forms.DateTimeField(required=False)


    def search(self):
        sqs = super(DateRangeSearchForm, self).search()
        print (sqs[0].object.publish_date) #2017-10-23 02:10:40.673000+00:00
        print (self.cleaned_data['start_date']) #2017-10-17 00:00:00+08:00
        print (self.cleaned_data['start_date']<sqs[0].object.publish_date) #true
        print (len(sqs)) #19

        if not self.is_valid():
            print("no query found/n")
            return self.no_query_found()

        if self.cleaned_data['start_date']:
            sqs = sqs.filter(publish_date__gte=self.cleaned_data['start_date'])
            print(len(sqs))#0

        return sqs
尝试在
forms.py中使用

from haystack.query import SearchQuerySet
    class DateRangeSearchForm(SearchForm):
        start_date = forms.DateTimeField(required=False)
        end_date = forms.DateTimeField(required=False)


        def search(self):
            sqs = super(DateRangeSearchForm, self).search()
            print (sqs[0].object.publish_date) 
            print (self.cleaned_data['start_date'])
            print (self.cleaned_data['start_date']<sqs[0].object.publish_date)
            print (len(sqs)) 

            if not self.is_valid():
                print("no query found/n")
                return self.no_query_found()

            if self.cleaned_data['start_date']:
                sqs = SearchQuerySet().filter(publish_date__gte=self.cleaned_data['start_date'])
                print(len(sqs))
            return sqs
class postManageSearchView(SearchView):
    template_name='backendSys/post_manageSearch.html'
    form_class = DateRangeSearchForm

    def get_context_data(self, **kwargs):
        context = super(postManageSearchView, self).get_context_data(**kwargs)
        admin = self.request.user.profile.admin.get(admin__user__pk=self.kwargs['pk'])
        permission = admin.permission.filter()
        articles = Article.objects.filter()
        context['permission'] = permission
        context['articles'] = articles
        return context

    def get_queryset(self):
        queryset = super(postManageSearchView, self).get_queryset()
        return queryset.all

我试过了。没有什么变化。筛选后Sqs仍然为空。请提供您的
视图。py
将其添加到问题中。尝试在
视图中传递queryset。py
仍然为空。质量保证
class postManageSearchView(SearchView):
    template_name='backendSys/post_manageSearch.html'
    form_class = DateRangeSearchForm

    def get_context_data(self, **kwargs):
        context = super(postManageSearchView, self).get_context_data(**kwargs)
        admin = self.request.user.profile.admin.get(admin__user__pk=self.kwargs['pk'])
        permission = admin.permission.filter()
        articles = Article.objects.filter()
        context['permission'] = permission
        context['articles'] = articles
        return context

    def get_queryset(self):
        queryset = super(postManageSearchView, self).get_queryset()
        return queryset.all