我正在製作一個自定義模板標記,並且希望能夠以任何類型的值傳遞它。用例是這樣的:django:解決自定義模板中的變量
{% include_with_args "path_to_template.html" simple_var an_object.foo.bar "A String" %}
在評估我的自定義模板的代碼,我要評估simple_var
,an_object.foo.bar
,和"A String"
,以同樣的方式Django的通常會。目前我有
these_args = [context[arg_name] for arg_name in self.arg_names]
但是,這隻適用於變量名稱(simple_var
)。
如何讓我的模板像Django一樣評估這些字符串?也就是說,如果.foo
是一個返回帶有"bar"
鍵的字典的函數,它應該按照預期對其進行評估:an_object.foo()["bar"]
。
簡而言之:我想評估一個表達式的值。我如何從自定義模板中做到這一點?
這可能是我接受我試圖在模板中放置太多邏輯,然後回到視圖來嘗試解決爲什麼在那裏無法完成的問題。 – 2012-08-03 00:28:15
我有一個像'{'Category1':{'Subcat1':obj,'Subcat2':obj},'Category2':{'Subcat1':obj,'Subcat4':obj}}'的屬性我傳遞給模板的對象。每個「obj」都使用另一個模板呈現。所以我想做'{%include_with_args「obj_renderer.html」object.Category1.Subcat1%}','{%include_with_args「obj_renderer.html」object.Category2.Subcat4%}等等...什麼是更好的方法? – Claudiu 2012-08-03 02:06:43