私は django (Grails から来ました) を初めて使いました。特に、変数をテンプレート内に直接記述するのではなく、対処しなければならないすべてのカスタム タグを使用しています。
さて、私がしなければならないことは非常に単純なことでしたが、何らかの理由で完了するのに長い時間がかかります. 私がやりたいのは、指定されたパスが現在の URL と等しいかどうかをチェックし、true の場合はクラスを返すタグを作成することでした。
<li class="{% check_url '/login/' 'current_page_item' %}">
<a href="{% url social_login %}">login</a>
</li>
しかし、takes_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 ''
どうすれば修正できますか?また、それを行うより良い方法はありますか?