很抱歉再次询问这个问题,但我尝试了堆栈溢出和一些教程中的几种解决方案,但我还无法创建自定义模板标记。当我尝试通过 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/