2012-07-02 22 views
1

我已經有了一個應用程序的網站,每個應用程序提供了一個側欄。假設一個應用程序是提供公司管理(列表,添加,刪除)的「公司」,一個是「員工」,允許員工管理。如何在django中按應用程序命令片段?

「公司」 提供了一個部分:

<div id="companies-sidebar"> 
    <ul> 
    <li><a href="{% url 'company_add' %}">Add</a></li> 
    <li><a href="{% url 'company_remove' %}">Remove</a></li> 
    <li><a href="{% url 'company_list' %}">List</a></li> 
    </ul> 
</div> 

相同的 「僱員」,分別與employees_網址。

我想根據應用程序在邊欄部分中訂購兩個片段。如果我在查看例如company_list(或..._removeadd),那麼companies_sidebar片段應該是第一個。如果我在對應於employees_...的視圖中,則應該首先使用employees_sidebar

現在的問題是:我怎樣才能做到這一點,而不需要使用可包含代碼段的模板氾濫呢?

一些注意事項:

  • 我知道這是不是一個正常的UX模式,其中項目變更單。
  • 解決方案之一就是爲每個應用程序使用自定義(base.html?)模板,並相應地更改相應的項目。

回答

2

編寫一個自定義模板標籤{% sidebar_snippets appname %},它將當前應用程序名稱作爲參數。然後在實現sidebar_snippets的Python中,您可以按照自己喜歡的方式訂購這些作品。

+0

感謝您的解決方案。由於它可能涉及通過已安裝應用程序的循環,結果是否會被緩存? –

+0

你可以實現你自己的HTML緩存。 –

+0

具有挑戰性...我想我會這樣做(可能是用逗號分隔的應用程序列表,而不是...) –

相關問題