第二次询问更多详情...
我想要一个项目范围的 templagetags 目录来拥有通用的 所有应用都使用的标签,那么每个应用都可以根据需要拥有自己的标签。
假设我有:
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。
最佳答案
我不知道这是否是正确的方法,但在我的 Django 应用程序中,我总是将通用模板标签放在 lib
“app”中,像这样:
proj/
__init__.py
lib/
__init__.py
templatetags/
__init__.py
common_tags.py
只需确保将 lib
应用程序添加到 settings.py
中的 INSTALLED_APPS
列表中即可。
关于Django——如何在该项目中的所有应用程序之间共享一个项目范围的模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/890942/