Django TemplateTags没有编译

时间:2015-06-04 04:12:18

标签: python django templatetags django-oscar

我正在尝试为我的项目创建自定义django模板标签。我按照可用的指南创建了标签。但标签没有被拿起。 它们甚至没有被编译(因为没有生成.pyc文件)。

结构为my_dir>app>templatetags>markup_tags.py。文件夹apptemplatetags包含所需的__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

这里有什么不对?感谢。

编辑:文件夹结构是 Folder-Structure

2 个答案:

答案 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