2011-12-27 4 views
0

Я реализовал эту функцию поиска на небольшом сайте, над которым я работаю, и у меня возникают проблемы при выполнении поискового запроса. Это отслеживающий:Django Search Query Fails

Traceback (most recent call last): 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__ 
    return self.application(environ, start_response) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__ 
    return self.application(environ, start_response) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/core/handlers/wsgi.py", line 272, in __call__ 
    response = self.get_response(request) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/core/handlers/base.py", line 169, in get_response 
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/core/handlers/base.py", line 203, in handle_uncaught_exception 
    return debug.technical_500_response(request, *exc_info) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 
    File "/Users/glosseyvilly/PycharmProjects/first_django_dev/apps/photos/views.py", line 113, in search_photos 
    'search_query': search_query 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/shortcuts/__init__.py", line 44, in render 
    return HttpResponse(loader.render_to_string(*args, **kwargs), 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/loader.py", line 188, in render_to_string 
    return t.render(context_instance) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 123, in render 
    return self._render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/debug.py", line 73, in render_node 
    result = node.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/loader_tags.py", line 127, in render 
    return compiled_parent._render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/debug.py", line 73, in render_node 
    result = node.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/loader_tags.py", line 64, in render 
    result = block.nodelist.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/debug.py", line 73, in render_node 
    result = node.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/defaulttags.py", line 311, in render 
    return self.nodelist_true.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/debug.py", line 73, in render_node 
    result = node.render(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/defaulttags.py", line 227, in render 
    nodelist.append(node.render(context)) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 915, in render 
    resolved_vars = [var.resolve(context) for var in self.vars_to_resolve] 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 653, in resolve 
    value = self._resolve_lookup(context) 
    File "/Users/glosseyvilly/Desktop/web_dev/ccdev/lib/python2.6/site-packages/django/template/base.py", line 692, in _resolve_lookup 
    raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute 
TemplateSyntaxError: Caught VariableDoesNotExist while rendering: Failed lookup for key [user] in u"'uploaded_photos/Published/2011/December/21/image_5.jpeg'" 

Это мой вид функции:

def search_photos(request): 
    """ 

    """ 
    search_query = '' 
    results = None 
    if ('q' in request.GET) and request.GET['q'].strip(): 
      search_query = request.GET['q'] 
     photo_query = get_query(search_query, ['caption',]) 
     results = Photo.objects.filter(photo_query).order_by('-date_added') 

    return render(request, 'photos/search.html', { 
     'results': results, 
     'search_query': search_query 
    }) 

NB: отслеживающий подчеркивает 'search_query': search_query быть возможной ошибки, и я не знаю, почему.

EDIT: Вот ссылка на мой шаблон search.html: gist.github.com/1524911

+0

Ошибка в шаблоне. Вы должны опубликовать это. (Если у вас в файле settings.py указано 'TEMPLATE_DEBUG = True', то будет выделена соответствующая строка). –

ответ

1
  1. Вам нужно форматировать сообщение об ошибке в блоке кода.
  2. Конкретная ошибка находится в конце трассировки: Ошибка поиска ключа [пользователя] в u "'uploaded_photos/Published/2011/December/21/image_5.jpeg'", который произошел в _resolve_lookup. Это процедура, которая делает выборку значений переменных для шаблонов.

Я бы внимательно рассмотрел шаблон. Обратите особое внимание на любые сложные ссылки на петли или теги шаблонов, которые могут выполнять странные поиски (например, {% expr %}). Сообщите нам, что вы придумали.

Update:

Мои деньги на линии:

 {% phileo_widget result.user result %} 

объект result имеют атрибут с именем user ли?

+0

вот ссылка на мой шаблон для поиска: https://gist.github.com/1524911 – cclerville

+0

OMG Не могу поверить, что я пропустил это. СПАСИБО! :) – cclerville

-1

Если не ваш метод принять self в качестве первого параметра ?:

def search_photos(self): 

Таким образом, вы получаете доступ к request объект с:

request = self.request