Почему django cart template_tags выдает сообщение об ошибке object has no attribute 'is_authenticated'
register = template.Library()
@register.filter
def cart_item_count(user):
if user.is_authenticated:
qs = Order.objects.filter(user=user, ordered=False)
if qs.exists():
return qs[0].item.count()
return 0
Шаблон использует в качестве параметра user
, поэтому вам нужно будет работать с объектом User
, который вы фильтруете, например, вошедший в систему пользователь с:
{{ user|cart_item_count }}
В своем фильтре шаблонов вы можете повысить эффективность, работая с:
register = template.Library()
@register.filter
def cart_item_count(user):
return Item.objects.filter(order__user_id=user.pk, order__ordered=False).count()
Однако, возможно, имеет смысл работать с тегом custom template tag [Django-doc].