我是 django 的新手(来自 Grails),尤其是您必须处理的所有自定义标签,而不是直接在模板中编写变量。
好吧,我需要做的是非常简单的事情,但由于某种原因,我需要很长时间才能完成。我想做的是制作一个标签,检查给定路径是否等于我当前的 url,如果为真则返回类。
<li class="{% check_url '/login/' 'current_page_item' %}">
<a href="{% url social_login %}">login</a>
</li>
但是,当我尝试使用 take_context 注册标签时,问题就来了:
渲染时捕获 TypeError:simple_tag() 得到了一个意外的关键字参数“takes_context ”
from django import template
register = template.Library()
@register.simple_tag(takes_context=True)
def check_url(context, path, attr):
if context['request'].environ.get('PATH_INFO') == path:
return attr
else:
return ''
我该如何解决?另外,有没有更好的方法呢?