Django -- 如何在该项目中的所有应用程序之间共享项目范围的模板标签 [英] Django -- How to have a project wide templatetags shared among all my apps in that project
问题描述
第二次询问更多细节......
Second time asking more details ...
我想要一个项目范围内的 templagetags 目录来拥有通用的所有应用使用的标签,那么每个应用都可以根据需要拥有自己的标签.
I'd like to have a project wide templagetags directory to have the common tags used by all Apps, then each app can have their own tags if need so.
假设我有:
proj1/app1
proj1/app1/templatetags/app1_tags.py
proj1/app2
proj1/app2/templatetags/app2_tags.py
proj1/templatetags/proj1_tags.py
proj1/templates/app1/base.html
proj1/templates/app1/index.html
proj1/templates/app2/base.html
proj1/templates/app2/index.html
地点:
proj1/templates/app1/base.html
-----------
{% load proj1_tags %}
{% load app1_tags %}
proj1/templates/app1/index.html
-----------
{% extends "base.html" %}
proj1/templates/app2/base.html
-----------
{% load proj2_tags %}
{% load app2_tags %}
proj1/templates/app2/index.html
-----------
{% extends "base.html" %}
这行得通吗?它对我不起作用.找不到要加载的 proj1_tags.
Would this work? It didn't work for me. It can't find the proj1_tags to load.
推荐答案
我不知道这样做是否正确,但是在我的 Django 应用程序中,我总是放置通用模板lib
app"中的标签,如下所示:
I don't know if this is the right way to do it, but in my Django apps, I always place common template tags in a lib
"app", like so:
proj/
__init__.py
lib/
__init__.py
templatetags/
__init__.py
common_tags.py
只需确保将 lib
应用添加到 settings.py
中的 INSTALLED_APPS
列表中.
Just make sure to add the lib
app to your list of INSTALLED_APPS
in settings.py
.
这篇关于Django -- 如何在该项目中的所有应用程序之间共享项目范围的模板标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!