繁体   English   中英

在 session 中保存查询时出现 django-haystack 问题

[英]django-haystack problem when saving query in session

我想将用户输入保存在我的视图中,我不知道如何重新定义搜索视图,所以我这样做了:

  request.session['q']=request.GET.get('q')
  from haystack.views import SearchView
  search_view = SearchView(template = template_name)
  return search_view(request)

但我收到了这个错误:

  Traceback (most recent call last):

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 280, in run
    self.result = application(self.environ, self.start_response)

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 674, in __call__
    return self.application(environ, start_response)

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 245, in __call__
    response = middleware_method(request, response)

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/contrib/sessions/middleware.py", line 36, in process_response
    request.session.save()

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 57, in save
    session_data = self.encode(self._get_session(no_load=must_create)),

   File "/home/usu/mysites/gondor/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 88, in encode
    pickled = pickle.dumps(session_dict, pickle.HIGHEST_PROTOCOL)

   File "/usr/local/lib/python2.7/dist-packages/haystack/models.py", line 175, in __getstate__   del(ret_dict['searchsite'])

KeyError: 'searchsite'

如果我删除该行:

 request.session['q']=request.GET.get('q') 

搜索工作正常,我不知道干草堆是否有问题或我做错了什么。 谢谢。

最后我发现了问题。 在另一个视图中,我将 SerchQuerySet 的结果保存在 session 中,但是在我放入内容时并没有出现问题,但是当我将其他内容放入 session 时,问题就出现了。 这很难被发现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM