我正在尝试为我的项目创建自定义django模板标记。我遵循可用的指南并创建了标签。但是这些标签没有被捡起来。它们甚至没有被编译(因为没有生成.pyc文件)。
结构为my_dir>app>templatetags>markup_tags.py。文件夹app和templatetags具有所需的__init__.py文件。
我的markup_tags.py文件是
from django import template
from random import randint
register = template.Library()
@register.assignment_tag()
def random_number(length=3):
"""
Create a random integer with given length.
For a length of 3 it will be between 100 and 999.
For a length of 4 it will be between 1000 and 9999.
"""
return randint(10**(length-1), (10**(length)-1))当我使用python manage.py shell命令检查标记时:
from my_dir.app.templatetags import markup_tags我知道错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named templatetags这里出什么问题了?谢谢。
编辑:文件夹结构是

发布于 2015-06-05 03:26:11
所以我不知道哪里出了问题,但是我复制到应用程序目录中的templatetags文件夹并没有被python捕获。我删除了它,并使用我的IDE (PyCharm)在我的应用程序中创建了一个新的Python Package,它会自动生成一个新的__init__.py文件。
我当时重新启动了服务器,现在似乎已经开始工作了。不过很奇怪!
发布于 2015-12-11 07:53:33
在通过添加下面的代码来解决这个问题之前,我遇到了同样的问题。
在settings.py中
TEMPLATE_LOADERS = ('django.template.loaders.app_directories.load_template_source',
)加入你的应用程序
INSTALLED_APPS = ('myapp',)一定要有一个
__init__.py在"myapp“文件夹中以及在templatetag中。
https://stackoverflow.com/questions/30634805
复制相似问题