2008-11-08 41 views
2

我正在使用django發佈者示例,我想通過我的list_publisher.html模板列出db中的所有發佈者,我的模板看起來像;如何在我的Django模型中列出項目?

{% extends "admin/base_site.html" %} 
{% block title %}List of books by publisher{% endblock %} 
{% block content %} 

<div id="content-main"> 
<h1>List of publisher:</h1> 

{%regroup publisher by name as pub_list %} 


{% for pub in pub_list %} 


<li>{{ pub.name }}</li> 

{% endfor %} 
</div> 
{% endblock %} 

但是當我運行「http://127.0.0.1:8000/list_publisher/」模板只是打印網頁的標題,並沒有錯誤!我究竟做錯了什麼?

+0

剛添加發布商的定義和建議ORDER_BY的 – VonC 2008-11-08 11:37:33

回答

3

幾點建議:{%regroup publisher by name as pub_list %}{{ pub_list|length }}

  • 檢查你的base_site.html確實定義一個{% block content %}{% endblock %}部分由你我list_publisher.html
  • 檢查列表的基數進行細化。這應該至少顯示你的列表的長度。如果是爲「0」 ......你知道它爲什麼不顯示任何內容
  • 檢查你的列表是按名稱使用重整旗鼓之前的確排序,或者使用{% regroup publisher|dictsort:"name" by name as pub_list %}以確保

如果長度'0',您必須確保發佈者已定義(已從數據庫初始化),並進行了適當的排序。

換句話說,你看到的任何地方(在你的模板或定義的模板):

publisher = Publisher.objects.all().order_by("name") 


(再次,按名稱的順序很重要,以確保您的重新組合標籤正常工作)由VonC

+0

長度爲0,但是當我通過管理接口檢查它有4個記錄? – gath 2008-11-08 09:00:41

0

很好的回答。

一個快速和骯髒的方式來看待pub_list是堅持[{{pub_list}}]在你的模板。如果它是空的,我把它放在方括號內。順便說一句,你可能會得到一些看起來像[,,,,,]的東西。這是因爲對象引用包含在<>中,並且瀏覽器正在運行WTF?只要做一個查看源,你會看到完整的結果。

相關問題