我无法让我的网站识别自定义模板标签。我有以下目录结构:
- 项目名称
- 项目名称
- 模板标签
- _ __init __ _.py
- 获取属性.py
- 观看次数
- _ __init __ _.py
- index.html
- 观点
- 设置.py
- 主要文件
- 管理.py
- urls.py
- 模板标签
- nb项目
- 项目名称
然后我将其添加到 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 %}
我得到的错误如下:
Could not import controllers.EventController. Error was: No module named project_name
任何帮助将不胜感激:
TIA
安德鲁
更新:
该站点可以运行,但我无法使模板标签运行。如果我从 installed_apps 中删除 project_name,我会收到以下错误:
Exception Value: 'getattribute' is not a valid tag library: Could not load template library from django.templatetags.getattribute, No module named getattribute
最佳答案
错误是因为你的文件夹结构有误,我认为你必须阅读文档,这个tutorial (part1)解释正确的结构:
您有一个与应用程序不同的项目:
- 项目名称
- 应用名称
- 模板标签
- 获取属性.py
- 模型.py
- View .py
- 模板标签
- 应用名称
- 设置.py
- 管理.py
在您的INSTALLED_APPS
中:
INSTALLED_APPS = (
# 'django.contrib.auth',
'django.contrib.contenttypes',
# 'django.contrib.sessions',
'django.contrib.sites',
'project_name.app_name',
)
就是这样
关于python - 如何创建自定义 Django 过滤器标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081834/