Как вычесть две даты и получить количество дней в аннотации? - PullRequest
0 голосов
/ 26 декабря 2018

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

device_record = Devc.objects.annotate(duration = todays_date - F('datebuy'))\
    .order_by('datebuy')

Когда я получаю данные, я получаю это 3150 days, 20:08:00.

Как мне сделать, чтобы убрать время, потому что я просто хочу отобразить number of days?

Я пытался:

device_record = Devc.objects.annotate(duration = (todays_date - F('datebuy')).days)\
        .order_by('datebuy')

вернулась ошибка: 'F' object has no attribute 'days'

Я определяю todays_date следующим образом todays_date = datetime.now().date(), datebuy равно DateTimeField

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Вы можете попытаться вычесть метки времени, а затем получить дни.

from datetime import datetime, timedelta

now = datetime.now()
yesterday =  now - timedelta(days=1)
duration = now - yesterday

print duration.days

Вывод:

1

0 голосов
/ 26 декабря 2018

Если вам нужно всего несколько дней, чтобы пользователь купил телефон.Вы можете запросить, как это device_record = Devc.objects.order_by('datebuy')

Затем в шаблоне {{ your_date_field|timesince:current_date_taht_can_be_return_from_view }}

...