我正在尝试创建一个模板标签,以便找出当前用户所属的组。我在另一个项目中进行了相同的设置,但那个正在工作,但这个没有。这就是我所拥有的:
项目结构:
- root_directory
-- myproject
--- home
---- templatetags
----- __init__.py
----- custom_tags.py
---- __init__.py
---- urls.py
---- ...
--- myproject
---- settings.py
---- ...
设置.py:
INSTALLED_APPS = [
.....
'home.templatetags',
]
custom_tags.py:
from django import template
register = template.Library()
@register.filter
def has_group(user, group_name):
return user.objects.filter(group_name=group_name).
home_base.html:
{% extends 'navbar.html' %}
{% block content %}
{% load custom_tags %}
{% endblock %}
追溯:
Internal Server Error: /
Traceback (most recent call last):
File "D:\Projects\1-2-1\monthlymeeting\venv\lib\site-packages\django\template\defaulttags.py", line 1021, in find_library
return parser.libraries[name]
KeyError: 'custom_tags'
我尝试了以下方法:
改造整个项目。
删除所有 .pyc 文件。
尝试在 settings.py 中将其作为 myproject.home.templatetags 和 home.templatetags.custom_tags 导入。
重启服务器、浏览器、PC。
我在模板标签中的初始化文件是空的
我从 PyCharm 中删除了 templatetags 文件夹,从 PyCharm 将其重新创建为 Python 包(以及目录)。
从 manage.py shell 中,我尝试使用 from 导入home.templatetags import custom_tags
,它加载时没有任何错误。
相同的结构适用于我拥有的另一个项目。我不知道发生了什么事。唯一不同的是,这个项目是Django 2.2.4,另一个是2.2.3。而且这个项目有一个额外的应用程序django-contrib-comments
。
我一直在尝试解决这个问题,并且我已经用尽了我可以在网上找到的所有方法。
智慧大石
相关分类