我正在尝试创建自定义过滤器,并且我已按照Django文档中的步骤进行操作。 但是,当我加载加载过滤器的模板时,会抛出以下错误:
'custom_filters' is not a valid tag library
...指的是模板中下面的一行:
1 {% extends 'shared/base.html' %}
2 {% load custom_filters %} <--- the error
3
4 {% block title %}
5 Showing project {{project}}
6 {% endblock %}
文件结构:
project/
...
...
models.py
views.py
templates/
templatetags/
__init__.py
custom_filters.py
custom_filters.py:
from django import template
register = template.Library()
@register.filter(name='ownership')
def ownership(project, user):
return project.added_by_user == user
因此,由于某些原因,Django无法找到custom_filters文件,即使我已经做了所有事情(据我所知)。
我做错了什么?
注意:我当然试图重启服务器。
答案 0 :(得分:1)
模板标签文件夹必须位于模板文件夹,views.py,models.py,...
旁边 //Don't forget also to put __init__.py outside the templatetags,
@register.simple_tag
def ownership(project, user):
return project.added_by_user == user
答案 1 :(得分:0)
如果您的应用名称为MyApp
且您的代码文件夹名称为templatetags
,那么您应该在settings.py
中拥有:
INSTALLED_APPS = [
'MyApp',
'MyApp.templatetags'
您的应用包下的app
和tag folder
那里需要Django项目。
-> MyApp
---> models.py
---> views.py
---> templatetags
-----> __init__.py
-----> app_filters.py