python - Django:创建自定义模板标签 -> ImportError

标签 python django django-cms

很抱歉再次询问这个问题,但我尝试了堆栈溢出和一些教程中的几种解决方案,但我还无法创建自定义模板标记。当我尝试通过 python manage.py runserver 启动服务器时,我得到的只是 ImportError: No module named test_tag

我创建了一个非常基本的模板标签(在这里找到:django templatetag?),如下所示:

我的文件夹结构:

demo
    manage.py
    test
        __init__.py
        settings.py
        urls.py
        ...
        templatetags
            __init__.py
            test_tag.py

测试标签.py:

from django import template
register = template.Library()

@register.simple_tag
def test_tag(input):
    if "foo" == input:
        return "foo"
    if "bar" == input:
        return "bar"
    if "baz" == input:
        return "baz"
    return ""

index.html:

{% load test_tag %}
<html>
    <head>
    ...
    </head>
    <body>
        {% cms_toolbar %}

        {% foobarbaz "bar" %}
        {% foobarbaz "elephant" %}
        {% foobarbaz "foo" %}
    </body>
</html>

和我的settings.py:

INSTALLED_APPS = (
    ...
    'test_tag',
    ...
)

如果您需要我的 settings.py 中的更多信息以及我做错了什么,所以我什至无法启动我的服务器,请告诉我。 (如果我从已安装的应用程序中删除“test_tag”,我可以启动服务器,但当然会收到 test_tag 未知的错误)。

谢谢

最佳答案

templatetags文件夹应位于应用程序内。

您的项目树应该类似于:

demo
    manage.py
    test
        __init__.py
        settings.py
        urls.py
    test_app
        __init__.py
        models.py
        tests.py
        views.py
        templatetags
            __init__.py
            test_tag.py

然后,将 test_app 添加到 INSTALLED_APPS 中,并从其中删除 test_tag

关于python - Django:创建自定义模板标签 -> ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19479333/

相关文章:

python - 无法从 PyQt4 导入 QtCore 或 QtGui

python - Django测试镜像数据库收不到数据

python - 在 Flask 响应中设置 HTTP 状态文本

python ,NLTK : NameError: name 'load_parser' is not defined

python - 如何将标量值添加到 yt 数组?

django - uwsgi 无法在 Heroku 上启动?

我应该使用 Python/Django : Which authorize. 网络库吗?

python - django-cms:实现层次结构附加的产品列表

django - 检查Django CMS中是否存在页面

python - 安装 djangocms-blog 后出现导入错误 : cannot import name 'python_2_unicode_compatible' from 'django.utils .encoding'