我正在尝试为我的项目创建自定义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
这里有什么不对?感谢。
编辑:文件夹结构是
答案 0 :(得分:1)
所以我不知道出了什么问题但是我正在复制到app目录的O(log n)
文件夹没被python选中。我删除了它并使用我的IDE(templatetags
),我在我的应用中创建了一个新的PyCharm
,它会自动生成一个新的Python Package
文件。
然后我重新启动了我的服务器,它现在似乎正常工作。虽然很奇怪!
答案 1 :(得分:0)
在我通过添加以下代码解决之前,我遇到了同样的问题
在settings.py中
TEMPLATE_LOADERS = ('django.template.loaders.app_directories.load_template_source',
)
在
INSTALLED_APPS = ('myapp',)
中添加您的应用
并确保在“myapp”文件夹和模板标签中都有__init__.py
。