如何在django视图中重新使用HTML片段

dan*_*ade 12 html django components django-templates

我正在开发一个django项目(我的第一个),在我的一个视图中,我有一个复杂的html片段,其中包含JS编织.我想在同一视图中的其他地方重用这个"组件".有没有办法实现这个目标?如果这个设计开始有问题,请告诉我?

Sam*_*lan 18

使用{%include'/ my /common/template.html'%}模板标签.

加载模板并使用当前上下文呈现它.这是一种在模板中"包含"其他模板的方法.

模板名称可以是单引号或双引号中的变量或硬编码(带引号)字符串.


git*_*rik 7

我知道这是一个旧的,但也许有人会使用这个答案.

还有包含标签.它就像include标记一样,只有你可以传递参数并将其作为一个单独的模板处理.

把它放进去my_app/templatetags/my_templatetags.py:

@register.inclusion_tag('my_snippet.html')
def my_snippet(url, title):
    return {'url': url, 'title': title}
Run Code Online (Sandbox Code Playgroud)

然后my_snippet.html可以是:

<a href="{{ url }}">{{ title }}</a>
Run Code Online (Sandbox Code Playgroud)

然后,在模板中使用此代码段:

{% load my_templatetags %}
{% my_snippet "/homepage/" "Homepage" %}
Run Code Online (Sandbox Code Playgroud)

更多信息:https: //docs.djangoproject.com/en/dev/howto/custom-template-tags/#howto-custom-template-tags-inclusion-tags