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