2012-09-19 59 views
2

我已經被這個錯誤沒有遇到屬性「has_header」屬性錯誤「功能」對象有

「功能」對象有沒有屬性「has_header」

我的網址文件contans

url(r'^HighDefs/$', list_HighDefs), 

和我有名稱定義的視圖

list_HighDefs

in views file。我不知道什麼是錯的。

視圖包含

def list_HighDefs(request): 
user_logger = Logger() 
user_logger.log_stack() 


if user_object: 
    email = user_object.email 
    uname = user_object.first_name+' '+user_object.last_name 

    try: 
     row = allapps_models.highdef.objects.filter(user_email=email, show_status=1) 


    except Exception: 

     return error_page(request) 

    highdefs = [] 

    for m in row: 
     order_product = int(m.m_id) 
     state = m.state 

     try: 
      category = checkout_models.state.objects.get(pk=product).premature.category.all() 
      category = category[0].pk 
     except: 

      category = 0 


     if int(category) == 2: 
      if state != 's': 
       highdefs.append(m) 


    return render_to_response('main/HighDefs.html',{'request': request, 'highdefs': highdefs, 'uname' :uname, 'email': email}, context_instance=RequestContext(request)) 

else: 
    return(login) 
+4

請不要將CamelCase與under_score命名混在一起。事實上,您應該堅持PEP8的功能命名約定under_score。 –

+3

看起來你的視圖正在返回一個函數,而不是'HttpResponse'。但是,除非您發佈視圖的代碼,否則我們無法分辨。 – Alasdair

+0

我編輯了帖子...請檢查視圖 –

回答

5

您的觀點必須返回一個HttpResponse對象。

爲此,它會爲你if聲明的一個分支:

return render_to_response(...) 
else分支

但不是。

return(login) 

如果login是返回HttpResponse對象視圖功能,那麼你就可以改變你的return語句

return login(request) 

不過,我懷疑你想將用戶重定向到登錄頁面,而不是。在這種情況下,改變你的代碼:

from django.http import HttpResponseRedirect 
return HttpResponseRedirect('/login/') 

其中/login/是你的登錄頁面的URL。

4

視圖的最後一行是return login(不知道爲什麼你在括號包裹的回報,這是不必要的)。但大概login是一個函數,你不叫它。我希望你的意思是做return login()return login(request)

+0

是的,它是登錄(請求)...但問題仍然存在.. –

相關問題