首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django TemplateTags未编译

Django TemplateTags未编译
EN

Stack Overflow用户
提问于 2015-06-04 04:12:18
回答 2查看 441关注 0票数 4

我正在尝试为我的项目创建自定义django模板标记。我遵循可用的指南并创建了标签。但是这些标签没有被捡起来。它们甚至没有被编译(因为没有生成.pyc文件)。

结构为my_dir>app>templatetags>markup_tags.py。文件夹apptemplatetags具有所需的__init__.py文件。

我的markup_tags.py文件是

代码语言:javascript
运行
复制
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命令检查标记时:

代码语言:javascript
运行
复制
from my_dir.app.templatetags import markup_tags

我知道错误:

代码语言:javascript
运行
复制
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named templatetags

这里出什么问题了?谢谢。

编辑:文件夹结构是

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-05 03:26:11

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

我当时重新启动了服务器,现在似乎已经开始工作了。不过很奇怪!

票数 1
EN

Stack Overflow用户

发布于 2015-12-11 07:53:33

在通过添加下面的代码来解决这个问题之前,我遇到了同样的问题。

在settings.py中

代码语言:javascript
运行
复制
TEMPLATE_LOADERS = ('django.template.loaders.app_directories.load_template_source',
)

加入你的应用程序

代码语言:javascript
运行
复制
INSTALLED_APPS = ('myapp',)

一定要有一个

代码语言:javascript
运行
复制
__init__.py

在"myapp“文件夹中以及在templatetag中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30634805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档