第二次询问更多细节...

我想拥有一个项目范围的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应用添加到INSTALLED_APPS中的settings.py列表中即可。

09-05 08:56