如何在交互式 shell 中导入模板标签?

Posted

技术标签:

【中文标题】如何在交互式 shell 中导入模板标签?【英文标题】:How to import a template tag in the interactive shell? 【发布时间】:2012-08-15 20:52:41 【问题描述】:

如何在交互式 shell 中导入自定义模板标签或过滤器以查看一切是否正常?

我有两台机器的行为不同,我不知道如何进行一些调试。

在生产机器上我无法加载模板过滤器,我收到错误“找不到模板库”。 在本地机器上一切正常。

【问题讨论】:

【参考方案1】:

如果您担心拼写错误、缺少__init__.py 问题或屏蔽ImportErrors,您可以只导入该函数。假设如下结构:

foo
├── bar
│   ├── __init__.py
│   ├── models.py
│   ├── static
│   │   └── ..
│   ├── templates
│   │   └── ..
│   ├── templatetags
│   │   ├── __init__.py
│   │   └── baz.py
│   ├── views.py
├── manage.py
└── foo
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

以及baz.py的以下内容:

from django import template

register = template.Library()

@register.filter
def capitalize(value):
    return value.capitalize()

你会跑

>>> from bar.templatetags import baz
>>> print baz.capitalize('test')
'test'

【讨论】:

我选择你的作为接受的答案,因为它非常详细。感谢大家的快速解答。【参考方案2】:

像这样导入过滤器:

from django.template import defaultfilters as filters
filters.date( date.today() )

您应该导入自定义过滤器,而不是默认过滤器:

from myApp.templatetags import poll_extras
poll_extras.cut( 'ello' )

仔细检查您的生产服务器中安装的应用程序的设置。

【讨论】:

以上是关于如何在交互式 shell 中导入模板标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Blazor 框架在前端浏览器中导入和导出 Excel

python交互环境中导入文件中自定义的函数报错

在 runserver 中导入但不在 wsgi 上的模板标签

在 Django 中导入 python 模块时出错

如何从表格数据中导入下拉值

如何在EXCEL的数据中导入到我自己设定的EXCEL模板中!?