我正在研究一個網站,每個網頁上都會有一堆頁面數量不確定的「apps」。像日曆應用程序和隨機圖片應用程序,或其他任何東西,每個都在一個整潔的小盒子裏。儘管可以用一堆包含其他模板的if標籤編寫模板,但這有點麻煩。我想傳遞一些變量,並在這些應用程序的某些表單上添加表單,因此它會很快失控。編寫自定義包含標記將比{%include x%}更好,但是如果爲每個頁面編寫每個可能的應用程序並且寫出大量的聲明,它仍然會很多。Django模板中的應用程序/小部件的不確定數量
有沒有什麼辦法可以像包含標籤一樣循環,只包含那些相關的東西?我錯過了任何其他完全不同的解決方案?
我試圖避免的,我是使用{%包含%}或包含標籤,是這樣的:
{% if apps.calendar %}
{% include "calendar.html" %}
{% endif %}
{% if apps.pictures %}
{% include "pictures.html" %}
{% endif %}
這意味着我們不得不更新模板任何時候一個新的應用程序是添加。什麼是漂亮的是一樣的東西:
{% for app in apps %}
{% call appropriate include or inclusion tag %}
{% endfor %}
嗯...我不認爲我很好地解釋了我的問題。我將添加到主要描述中。 – CaptainThrowup 2010-01-04 06:08:38
這仍然涉及硬編碼包括,並會要求我們每次添加新的應用程序/小部件時更新模板。我想我最終會做的是爲每個小部件製作一個render_widget方法,然後循環並調用它。 – CaptainThrowup 2010-01-13 19:53:10