2014-01-21 38 views
1

在我的Django應用程序中,我有一個繼承ListView的基於類的視圖。 get_queryset方法重寫這樣:爲什麼我得到一個錯誤「類型'HttpResponseRedirect'的對象沒有len()」?

def get_queryset(self): 
     if not 'anonymous_nickname' in self.request.session: 
      return HttpResponseRedirect('/') 
     filters = {} 
     if self.request.user.is_anonymous(): 
      filters['allow_anonymous_access'] = True 
     return CoopRoom.objects.filter(**filters) 

爲了不讓用戶看到房間的名單時,他想不進入主網頁上的所有數據,以達到他們。但是,而不是執行該重定向:

  return HttpResponseRedirect('/') 

我得到一個錯誤「類型的對象HttpResponseRedirect'沒有LEN()」。我看不出原因?

在此先感謝。

回答

3

get_queryset()方法應返回的查詢集(就像你在你的第二個return語句來完成),並HttpResponseRedirect

而不是返回HttpResponseRedirect您可以拋出一個404例外(raise Http404)或返回一個空的查詢集與return CoopRoom.objects.none()

相關問題