Как проверить это start_date> check_date в фильтре ORM django? - PullRequest
0 голосов
/ 07 ноября 2019

Как проверить эту start_date> check_date в фильтре ORM django?

check_date = request.GET.get('start_date')

    qs = Test.objects.values('opinion').annotate(
        count=Count('opinion'),
        dcount=Count('opin_id',
                     distinct=True)).filter(start_date__gte='check_date').order_by("count")

здесь, как я могу проверить start_date с помощью check_date. Этот метод не работает filter(start_date__gte='check_date') filter(start_date__gte=check_date) также не работает

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Удалить цитату вокруг вас check_date в вашем фильтре

filter(start_date__gte=check_date)
0 голосов
/ 07 ноября 2019
from datetime import datetime
check_date = request.GET.get('start_date')
check_date = datetime.strptime(check_date,'format')

проблема в верхней строке, потому что вы получаете строку, но в ORM вам нужно передать объект datetime для сравнения дат. Поэтому сначала преобразуйте его в формат, который вы используете в БД, а затем

qs = Test.objects.values('opinion').annotate(
    count=Count('opinion'),
    dcount=Count('opin_id',
                 distinct=True)).filter(start_date__gte=check_date).order_by("count")
...