我目前正在使用自定義註釋查詢集的應用程序。目前我有2個網址設置,但我需要爲每個用戶想要彙總數據的字段。這可以手動配置,但它會違反幹!我基本上會有+8個網址,基本上可以做同樣的事情。動態顯示Django模板中的字段值(object.x)
因此,這裏是我做過什麼,
- 我有一個創建的自定義模型管理器
- 我有一個觀點
- 我的URL配置
以上所有作品。
因此,基本上URL配置傳遞給視圖的字段名稱來註釋(由SQL人員分組),視圖做了一些額外的處理,並根據傳遞給它的字段運行自定義模型管理器。
的URL看起來是這樣的:
url('^(?P<field>[\w-]+)/(?P<year>\d{4})/(?P<month>\d+)/(?P<day>\d+)/$','by_subtype', name='chart_link'),
的場是分貝,列在查詢集的實際運行時使用。它從視圖傳遞給我的自定義管理器。下面是從管理器的代碼的一個例子:
return self.filter(start_date_time__year=year).filter(start_date_time__month=month).filter(start_date_time__day=day).values(field).annotate(Count(field))
此外,我作爲上下文變量傳遞字段的值。這用於動態構建鏈接。但是,問題實際上是循環查詢集並顯示數據。
所以,你的典型模板的代碼如下所示:
{% for object in object_list %}
{{ object.sub_type }} : {{ object.sub_type__count|intcomma }}
{% endfor %}
基本上你已硬編碼領域diplay(即object.x),反正是有動態分配呢?即 如果字段=業務 然後在模板它會自動處理:
{{ object.business }}
可以這樣做?或者我需要創建幾個URL?還是有更好的方法來實現相同的結果,一個視圖和url動態處理查詢。
您可以在github上找到代碼,現在模板部分正在使用此代碼片段:http://www.djangosnippets.org/snippets/1412/因此,如果您稍後遇到此問題並且想要做類似的事情,請查看github上的代碼段。 :http://gist.github.com/233262
喜德,是的,這也正是它。我試圖創建一個自定義模板標籤,但我認爲這個問題與模板標籤/模板等被解析的方式有關,該代碼片段看起來像可以工作。會給它一個鏡頭。 – ismail 2009-11-12 21:33:23
感謝這工作.... – ismail 2009-11-12 22:52:51