проблема django-haystack при сохранении запроса в сеансе - PullRequest
0 голосов
/ 17 августа 2011

Я хочу сохранить пользовательский ввод в моем представлении, я не знаю, как это сделать, переопределив представление поиска, поэтому я сделал это:

  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') 

, поиск работает нормально, я не знаю, есть ли проблема с стогом сена, или я делаю что-то не так.Благодарю.

1 Ответ

0 голосов
/ 19 августа 2011

Наконец я нашел проблему.В другом представлении я сохранял в сеансе результат SerchQuerySet, но проблема не возникла, когда я поместил контент, а поднялась, когда я добавил в сеанс другую вещь.Это было очень трудно выяснить.

...