Skip to main content
 首页 » 编程设计

python之是否可以让 Django 自定义模板标签加载包中的其他模板

2025年05月04日30cmt

我想要做的是在 Django 包中打包模板,只需使用

即可将其插入开发人员页面
{% load app_tags %} 

这适用于获取一个值并返回一个值的自定义方法。我想做的只是有一个方法,它返回一个与应用程序打包在一起的模板。

{{ custom_template }} 

所以问题归结为我如何拥有一个安装我的应用程序的项目加载我的应用程序的标签并调用包含应用程序模板的标签方法。

感谢您的任何回复。

请您参考如下方法:

是的!在app_tags.py中做一个包含标签,然后调用它!

它们非常适合代码重用(当然还有 Django block 和 {% include ... %} 模板标签)

引用:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags

# app_tags.py 
from django import template 
register = template.Library() 
 
@register.inclusion_tag("templates/myappname/greeting.html") 
def greet(name, end="!!!"): 
     return { 'name': name,  'end': end } 

和

 {# templates/myappname/greeting.html  #} 
 
 <h1>  What's up {{ name }}{{ end }}  </h1> 

然后调用它,您将使用 {% 和 %},双括号符号,例如{{ custom_template }} 实际上只是为了显示单个变量的值

{% load app_tags %} 
 
{% for person in people_to_greet %} 
     {% greet person %} 
{% end %} 
 
<h3> cool greetings above ^ </h3>