2015-09-07 42 views
2

我在我的應用程序中使用基於類的視圖,但我卡在一點。我正在使用ListView並創建了兩個類,分別是ListView的子類。Listview基於類的視圖無法正常工作

views.py

class blog_home(ListView): 
    paginate_by = 3 
    model= Blog 
    context_object_name = 'blog_title' 
    template_name = 'blog.html' 

class blog_search(ListView): 
    paginate_by = 4 

    context_object_name = 'blog_search' 
    template = 'blog_search.html' 

    def get_queryset(self): 
     self.search_result = Blog.objects.filter(title__contains = 'Static') 
     return self.search_result 

urls.py

urlpatterns = [ 
url(r'^$', index, name='index'), 
url(r'^grappelli/', include('grappelli.urls')), 
url(r'^blog/', blog_home.as_view(), name='blog_home'), 
url(r'^admin/', include(admin.site.urls)), 
url(r'^blog/search/',blog_search.as_view(),name='blog_search'), 
] 

在我blog_Search()上面的代碼中,get_queryset()方法是沒有得到調用。我的意思是它沒有工作。如果我在blog_home中使用相同的方法,它確實有效。

blog_search不過濾。我也添加了打印語句,但沒有被調用。

我可以用ListView在同一個文件中創建兩個類嗎?這是問題嗎?

+1

請顯示urls.py文件。 –

+0

您是否收到任何運行錯誤? – electrometro

+0

你不需要在第二個中定義'model = Blog'嗎? – dietbacon

回答

3

您需要終止您的blog/ URL項。如果沒有終止,它會匹配以「blog /」開頭的所有網址,包括「博客/搜索」,因此沒有任何請求會將其添加到blog_search視圖。

url(r'^blog/$', blog_home.as_view(), name='blog_home'), 
url(r'^admin/', include(admin.site.urls)), 
url(r'^blog/search/$',blog_search.as_view(),name='blog_search'),