2009-09-20 127 views
1

人们如何调试Django模板标签?Django:调试模板标签

我创建了一个,基于一个工作示例,我的新标签与现有的标签看起来一样。但我刚刚得到一个

'my_lib' is not a valid tag library: Could not load template library from django.templatetags.my_lib, No module named my_lib 

我知道这可能是因为定义lib时失败。但是,我如何看到发生了什么?

你用什么来调试这种情况?

回答

5

这听起来像Django无法找到您的模板标签定义在python文件中。Django在您的应用程序文件夹中的名为templatetags的文件夹中找到自定义标签。

所以,如果你有一个名为书籍的应用程序,你在你的模板调用{% load book_tags %},您的图书应用的文件夹应该是这个样子:

  • 书籍
    • __init__.py
    • 意见.py
    • models.py
    • templatetags
      • __init__.py
      • book_tags.py

确保__init__.py文件在templatetags。

+0

Books应用程序还必须处于INSTALLED_APPS设置。模板标签加载器thingy从上到下查看每个安装的应用程序中的每个“templatetags”目录。 – priestc 2009-09-20 11:33:33

+0

谢谢你们。好建议。其实我发现了这个问题:我的文件没有与包含的库相同的名称。我愚蠢地认为{%load ..%}中的名字是该应用的名称。 – interstar 2009-09-20 14:11:18