【问题标题】:Check for installed django apps using django tags使用 django 标签检查已安装的 django 应用程序
【发布时间】:2018-11-29 01:00:25
【问题描述】:

我正在为一个应用程序编写代码,它可以像一个模块一样安装在多个 django 项目上,每个项目都可以进行不同的配置。我正在寻找一种方法来根据项目的配置方式有条件地加载包。

如果项目的settings.py 文件中的INSTALLED_APPS 中列出了特定包,则使用{% load my_package %} 加载该包。

我的设想是这样的:

{% if package_is_installed %}
    {% load package %}
{% endif %}

<body>
{% if package_is_installed %}
    {% use part of the package %}
{% endif %}
</body>

这可以通过标签或其他一些 html 或 javascript 实现来实现吗?

【问题讨论】:

    标签: python django tags


    【解决方案1】:

    最好将逻辑保留在模板文件之外并拥有不同版本的模板。

    在模板中执行此操作意味着为过滤器或模板标签编写一些 python,因此最好将逻辑保留在有条件地选择模板的视图中。

    if 'myapp' in settings.INSTALLED_APPS:
        temmplate_name = 'myapp.html'
    else:
        template_name = 'base.html'
    

    【讨论】:

    • 这是个好建议,谢谢。我选择了像你描述的那样。
    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2017-05-13
    • 2017-05-25
    • 1970-01-01
    • 2021-04-18
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多