1
我有以下型號:如何篩選在Django模板的object_list中
class CompanyReport(models.Model):
company = models.CharField(max_length=300)
desc = models.TextField()
text = models.TextField()
date = models.DateTimeField()
- 有一組公司
- 每家公司都有一個實體,稱爲
report
- 可以有多個
reports
在year
爲同一家公司
我想做什麼是製作一個multilevel dropdown
菜單。
- 在第一級會有公司名稱。
- 當我們點擊一個名字時,會有一個公司提交報告的年份列表。
- 當我們點擊一個特定的年份時,會列出當年的所有報告。
當我在php
工作時,我能夠使用3個不同的查詢來做到這一點。
- 第一個查詢中包含的公司的名字和他們提交了一份報告,對特定公司報告
- 第二查詢中包含數在一年
- 第三查詢中包含的年數全部報告按公司名稱按升序排序。
我剛剛跑了3個嵌套循環,其中公司數量爲1,另一個爲該公司的年數,最後一年爲公司的報告數量,然後我剛剛顯示下一個從名單報告。
我可以使用Manager.raw
來做同樣的事情,但我無法遍歷模板中的對象,因爲只有這個操作可用{% for obejct in object_list %}
。我需要兩樣東西
- 方式爲
number based for loop
- 這個PHP
$row = mysql_fetch_array($query);
它只是從查詢中獲取列表中的下一個元組的等效。
預計輸出我想要顯示的輸出類型在我上傳的屏幕截圖中。
任何形式的幫助深表謝意。
**就澄清** 這些列表'company_list','company_year_list'和'company_report_list'將使用'raw'查詢,因爲這些是填充基本上按不同屬性分組? – Sachin
您提供的解決方案有一點。這並不是最佳的,我們正在通過可能不存在於數據庫中的組合進行循環。如果我們可以基於循環計數,那麼我們可以得到每個公司每年的報告數量。並且使用所有報告的列表,我們可以通過它們循環,公司,年份和記錄數將通過早期列表 – Sachin
Sachin知道,您不應該使用原始查詢。看看'額外':http://stackoverflow.com/questions/327807/django-equivalent-for-count-and-group-by – Jordan