将宏添加到django模板
django-templates-macros的Python项目详细描述
django模板宏
将宏添加到django模板中
起源
这个应用程序的原始代码是mattp从https://djangosnippets.org/snippets/2892/中获取的。
这段代码引用了:
Based on snippet by Michal Ludvig <michal@logix.cz> http://www.logix.cz/michal http://djangosnippets.org/snippets/363/ Extended for args and kwargs into templatetags/kwacro.py by Skylar Saveland <michal@logix.cz> http://skyl.org https://gist.github.com/skyl/1715202 Modified to support rendering into context by matt@peloquin.com
其中
你可以在这里找到这个包裹:
使用量
将此应用程序“宏”添加到已安装的应用程序中
在模板中加载库:
{% load macros %}
定义一个名为“my_macro”的新宏,它接受args和/或kwargs 所有选项都是可选的:
{% macro my_macro arg1 arg2 baz="Default baz" %} {% firstof arg1 "default_arg1" %} {% if arg2 %}{{ arg2 }}{% else %}default_arg2{% endif %} {{ baz }} {% endmacro %}
将宏与字符串参数或上下文变量一起使用:
{% usemacro my_macro "foo" "bar" baz="KW" %} <br> {% usemacro my_macro num_pages "bar" %} <br> {% setmacro my_macro %} {{ my_macro }}
Renders like:
foo bar KW 77 bar Default baz default_arg1 default_arg2 Default baz
或者将宏保存在一个单独的文件中,例如“mymacro.html”,并使用以下命令将其加载到当前模板:
{% loadmacros "mymacros.html" %} Then use these loaded macros in as described above.
请记住,定义和加载的宏是每个模板的本地宏 不是通过{%extends…%}标记继承的。