4

我正在尝试为我的项目创建自定义 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

这里有什么问题?谢谢。

编辑:文件夹结构是 文件夹结构

4

2 回答 2

1

所以我不知道出了什么问题,但是templatetags我复制到应用程序目录中的文件夹没有被 python 拾取。我删除了它并使用我的 IDE ( PyCharm),Python Package在我的应用程序中创建了一个新文件,它会自动生成一个新__init__.py文件。

然后我重新启动了我的服务器,它现在似乎可以工作了。虽然很奇怪!

于 2015-06-05T03:26:11.547 回答
0


在我通过在 settings.py下面添加代码来解决它之前我遇到了同样的问题

TEMPLATE_LOADERS = ('django.template.loaders.app_directories.load_template_source',
)

将您的应用添加到

INSTALLED_APPS = ('myapp',)
并且一定要有一个
__init__.py
在“myapp”文件夹以及模板标签中。

于 2015-12-11T07:53:33.783 回答