Я новичок в django (из Grails), особенно со всеми теми пользовательскими тегами, с которыми вам приходится иметь дело, вместо того, чтобы записывать свои переменные непосредственно в шаблоны.
Ну, что мне нужноdo было чем-то действительно простым, но по какой-то причине мне потребовалось много времени, чтобы закончить.Я хотел сделать тег, который проверяет, равен ли данный путь моему текущему URL, а затем возвращает класс, если true.
<li class="{% check_url '/login/' 'current_page_item' %}">
<a href="{% url social_login %}">login</a>
</li>
Но проблема возникла, когда я попытался зарегистрироватьсятег с take_context:
Печатная ошибка типа при рендеринге: simple_tag () получил неожиданный аргумент ключевого слова 'take_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 ''
Как это исправить?Кроме того, есть ли лучший способ сделать это?