Проблемы с django ORM, когда я фильтрую экземпляр модели, фильтр не работает, как должно быть.

Моя среда

Django version = 4.0.4
Python == 3.9.12
os = osx

Я запутался, когда пытаюсь сделать фильтр на модели, используя настроенный тег шаблона таким образом

@register.filter
def cart_item_count(user):
if user.is_authenticated:
    qs = Order.objects.filter(user=user, ordered=False)
    print(qs.ordered)
    if qs.exists():
        return qs[0].items.count()
    else:
       return 0
return 0
<

но даже когда я говорю в фильтре, что мне нужно только ordered=False, я делаю print, чтобы убедиться, какое значение имеет мой queryset, и он печатает мне True, почему такое поведение?

Это всегда возвращает мне истинный заказанный заказ, но я хочу просто взять, что есть заказанный ложный, потому что я хочу показать в моей корзине пустую корзину после того, как я делаю проверку POST для перенаправления на дом или другой вид и обновить для меня в пустую новую корзину, pls если кто-то может помочь мне даже со статьей пост об этом и объяснить мне, что я делаю неправильно, спасибо!

qs.ordered относится к встроенному методу класса QuerySet, а не к столбцу в таблице данных. Более подробную информацию можно найти на: https://docs.djangoproject.com/en/4.0/ref/models/querysets/#django.db.models.query.QuerySet.ordered

Вернуться на верх