2010-08-29 62 views
5

我正在將模型中的內容輸出到我的模板,但某些模型字段調用存儲在其他模型中的數據。這隻發生在幾個領域。我想知道使用if標籤來評估這個標籤是否比在模型中存儲django標籤更高效。在Django模型中存儲和轉義Django標籤和過濾器

回答this question表示,在模型中存儲django標籤是一個壞主意,沒有給出理由(儘管我認爲其中一個原因可能是其他人可能會在數據庫中注入一些標籤)。假設數據庫注入是罕見的,是否有逃避存儲在模型中的Django標籤和過濾器的方法。

或者更好的是,最有效的方法來處理上述情況,其中幾個字段中的一個模型字段調用存儲在另一個模型中的字段。

這應該被存放在我的模型

<p>We focus on:</p> 
{% for item in services %} 
{% url service_view item.id as service_url %} 
<ul> 
<li><a href="service_url">{{item.title}}</a></li> 
</ul> 
{% endfor %} 

1.4.3應該導致Django的解析相關的Django的標籤,如果模板的一部分

+0

我完全不理解你的問題。 「存儲在數據庫中的標籤」?你能舉一些例子嗎? – 2010-08-29 14:14:45

回答

1

謝謝內德,我試着實現,但我發現它是相當複雜的,它在便攜性方面也是不利的。

但是,我在Django Snippets中找到了我需要的東西(不知道爲什麼我沒有先看到它)。它是一個非常有用的工具,被稱爲render_as_template

將其設置爲自定義標籤後,我需要的所有內容都是以{% render_as_template about_view.content %}的形式使用它,並且模型中的標籤被渲染爲模型。在創建自己的自定義模板和標籤available here

0

說明你應該使用inclusion tags然後包括標籤只要你想的到的HTML渲染。該模型應該只是爲變量生成值,而不是格式化。

+0

這是如何工作的?整個問題案例的動機是在另一個模型的幾個領域中包含另一個模型的輸出。當我這樣做時,我想通過避免一個循環來保持性能,這個循環會繼續執行以檢查字段是否調用其他模型。爲了避免循環,我使用代碼將數據保存在字段中,以調用另一個模型的相關字段。 – 2010-09-01 04:49:06