2011-12-27 132 views
0

我在我正在处理的一个小网站上实现了此搜索功能,并且在执行搜索查询时遇到问题。这是回溯:Django搜索查询失败

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

注:回溯突出'search_query': search_query是一个可能的错误,我不知道为什么。

编辑:这里是一个链接到我的search.html模板:gist.github.com/1524911

+0

的错误是在你的模板。你应该发布。 (如果在settings.py中有'TEMPLATE_DEBUG = True',它会突出显示相关行)。 – 2011-12-27 19:21:08

回答

1
  1. 您需要格式化出错信息的代码块。
  2. 特定错误发生在回溯结束时:u''uploaded_photos/Published/2011/December/21/image_5.jpeg'中的关键[user]失败查找“发生在_resolve_lookup。这是为模板执行变量值获取的例程。

我会仔细看看模板。要特别注意任何棘手的循环引用或模板标签,这些标签可能会进行奇怪的查找(例如想到{% expr %})。让我们知道你提出了什么。

更新:

我的钱是上线:

 {% phileo_widget result.user result %} 

是否result对象有一个属性名为user

+0

这里是我的搜索模板的链接:https://gist.github.com/1524911 – cclerville 2011-12-27 19:39:44

+0

OMG我不能相信我错过了。谢谢! :) – cclerville 2011-12-27 20:07:49

-1

应该不是你的方法采取self作为第一个参数?:

def search_photos(self): 

所以,你访问request对象:

request = self.request