Django——如何在该项目中的所有应用程序之间共享一个项目范围的模板标签

标签 django templates django-templates tags

第二次询问更多详情...

我想要一个项目范围的 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/

相关文章:

django 模板和列表字典

python - 如何在同一个 HTML 页面上显示两个不同模型的数据

django - 如何根据对象的字段值在 django 模板中分配 HTML 类

django - 通过RESTful API使用django和tastypie进行文件发布

python - Django 固定装置具有所有可能的组合?

python - 括号 URL 调度程序 Django?

c++ - 派生可变参数类模板的调用函数模板重载

python - 为什么 Django 的 related_model 属性返回字符串而不是模型实例?

javascript - 如何在vue模板中显示异步数据

c++ - 使用 std::array<T, N> 会导致代码膨胀吗?