[英]How to create a custom django filter tag
我无法让我的网站识别自定义模板标签。 我有以下目录结构:
然后我将其添加到INSTALLED_APPS:
INSTALLED_APPS = (
# 'django.contrib.auth',
'django.contrib.contenttypes',
# 'django.contrib.sessions',
'django.contrib.sites',
'project_name'
)
然后我在模板中引用它,如下所示:
{% load getattribute %}
{% for header in headers %}
<td>{{ obj|getattribute:header }}</td>
{% endfor %}
我得到的错误如下:
无法导入controllers.EventController。 错误是:没有名为project_name的模块
任何帮助将不胜感激:
TIA
安德鲁
更新:
该网站有效,但我无法使用模板标签。 如果我从installed_apps中删除project_name,我会收到以下错误:
异常值:'getattribute'不是有效的标记库:无法从django.templatetags.getattribute加载模板库,没有名为getattribute的模块
错误是因为您的文件夹结构错误,我认为您必须阅读文档,本教程(第1部分)解释了正确的结构:
你有一个与app不同的项目:
在你的INSTALLED_APPS
:
INSTALLED_APPS = (
# 'django.contrib.auth',
'django.contrib.contenttypes',
# 'django.contrib.sessions',
'django.contrib.sites',
'project_name.app_name',
)
就这些
您确定这与模板标签有关吗?
听起来像project_name目录不在你的python路径上。 错误页面上的输出应显示当前的python路径,因此您可以检查它是否符合预期。
阅读本文以了解如何修复它: http : //djangotricks.blogspot.com/2008/09/note-on-python-paths.html
你的项目结构,不是太精细,一团糟。 您需要做的许多事情中的一些:
manage.py
和settings.py
应该在外层,而不是在应用程序内。 views
是什么 - 它实际上是views.py
吗? 在这种情况下,它永远不会被使用。 templatetags
和views
的空文件应为__init__.py
,即两侧的两个下划线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.