現在讓我們來仔細看看這個 queryset 。 大多數通用視圖有一個queryset參數,這個參數告訴視圖要顯示對象的集合。
舉一個簡單的例子,我們打算對書籍列表按出版日期排序,最近的排在最前:
book_info = { 'queryset': Book.objects.order_by('-publication_date'), } urlpatterns = patterns('', (r'^publishers/$', list_detail.object_list, publisher_info), **(r'^books/$', list_detail.object_list, book_info),** )
這是一個相當簡單的例子,但是很說明問題。 當然,你通常還想做比重新排序更多的事。 如果你想要呈現某個特定出版商出版的所有書籍列表,你可以使用同樣的技術:
**apress_books = {** **'queryset': Book.objects.filter(publisher__name='Apress Publishing'),** **'template_name': 'books/apress_list.html'** **}** urlpatterns = patterns('', (r'^publishers/$', list_detail.object_list, publisher_info), **(r'^books/apress/$', list_detail.object_list, apress_books),** )
注意 在使用一個過濾的 queryset 的同時,我們還使用了一個自定義的模板名稱。 如果我們不這么做,通用視圖就會用以前的模板,這可能不是我們想要的結果。
同樣要注意的是這并不是一個處理出版商相關書籍的最好方法。 如果我們想要添加另一個 出版商頁面,我們就得在URL配置中寫URL配置,如果有很多的出版商,這個方法就不能 接受了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
