我想要一个菜单,该菜单可以根据您所属的组进行定制。我正在使用Django 1.10.1,allauth等。当我试图制作我的templatetag时,它失败了,它说:
TemplateSyntaxError at / 'my_templatetag' is not a registered tag library. Must be one of: account account_tags admin_list admin_modify admin_static admin_urls cache i18n l10n log socialaccount socialaccount_tags static staticfiles tz
'my_templatetag.py'看起来像这样:
from django import template from django.contrib.auth.models import Group register = template.Library() @register.filter(name='has_group') def has_group(user, group_name): group = Group.objects.get(name=group_name) return group in user.groups.all()
并且我的.html文件中出现错误消息,
{% load my_templatetag %}
我已尝试像数百万次一样重新启动服务器,也尝试更改所有名称,并且该应用程序是settings.py中INSTALLED_APPS的一部分。我在做什么错?
我想要一个菜单,该菜单可以根据您所属的组进行定制。我正在使用Django 1.10.1,allauth等。当我试图制作我的templatetag时,它失败了,并说:¨TemplateSyntaxError位于/'...
除了将my_templatetag.py
放入app_name/templatetags
之外,请确保每次修改模板标签时都重新启动Django开发服务器(或确保它自行重新启动)。如果服务器没有重新启动,则Django将不会注册标签。
我正在使用Django 1.11,并且遇到了同样的问题。这里的一些答案是正确的,但有些事情可能会丢失。这是我所做的:
从django 1.9起,您可以在这样的设置中加载这些新标签/过滤器:
确保您没有丢失以下任何步骤:
就我而言,问题是我正在使用{% load filter_method_name %}
重新启动django服务器。在应用程序中设置templatetag文件夹并在templatetag文件夹中设置template_name.py后,它对我有用。
“ my_templatetag.py”存储在哪里?它应存储在应用程序内名为“ templatetags”的目录中。
我知道这有点老了,但是今天我遇到了同样的问题。我在文档中找到了解决方案:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
将my_templatetag.py放在app_name / templatetags内,然后在init
您只是剪切/删除了在(例如templatetags / home.py)内部编写的代码从home.py中删除代码,然后重新启动服务器,然后再次将代码粘贴到home.py中,它将起作用。