gpt4 book ai didi

python - 如何定义自定义过滤器以最少使用 django 模板?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:28 24 4
gpt4 key购买 nike

我有一个 python 项目,我正在使用 Django 模板来生成 C++ 源代码。

我选择 Django 是因为模板语言具有相当大的限制,并且拥有非常大的社区,使最终用户开发人员可以轻松使用并获得帮助。

我无法为我的项目添加自定义过滤器(将一组类型名称转换为另一组类型名称),因为我没有完成正常的 django 设置。

相反:

from django.template import Context, Template
import django

if not django.conf.settings.configured : django.conf.settings.configure()
django.setup()

让我可以完美地使用 Django 模板,但不定义自定义过滤器。

我的自定义过滤器名为 ctypes_filters.py,我在模板中将其引用为

{% load ctypes_filters %}

运行我的生成脚本会导致以下错误:

django.template.base.TemplateSyntaxError: 'ctypes_filters' is not a valid tag library: Template library ctypes_filters not found, tried 

django.templatetags.ctypes_filters

如何在不设置完整 Django 项目(数据库定义等)的情况下让 django 找到过滤器?

我知道还有其他模板解决方案可用(并且可能更轻量级),但我真的很热衷于使用 Django 简单而优雅的模板。

最佳答案

Django 模板标签的位置是按照约定而不是配置设置完成的(请参阅模板标签文档的 code layout 部分)。

ctypes_filter.py 放入已安装应用程序的 templatetags 目录中(我在这里将其称为 myapp)。将空的 __init__.py 添加到 myapptemplatetags 目录中。该应用不需要您在 Django 应用中常见的任何其他文件,例如 models.pyviews.py

myapp/
__init__.py
templatetags/
__init__.py
ctypes_filter.py

然后在配置设置时将 myapp 包含在您的 INSTALLED_APPS 中。

django.conf.settings.configure(
INSTALLED_APPS=('myapp',),
)

关于python - 如何定义自定义过滤器以最少使用 django 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28683247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com