在Python的Django架構中顯示對象子集的方法

來源:互聯網
上載者:User
現在讓我們來仔細看看這個 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配置,如果有很多的出版商,這個方法就不能 接受了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.