2011-12-27 80 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