Задать вопрос
filmincer
@filmincer

Как получить правильную разницу между диапазоном дат из двух полей models.DateField?

Здравствуйте.
Делаю сайт по аренде книг. Есть два поля модели: start_date и end_date(юзер ставит диапазон аренды). Нужно было получить list из дней, когда книга будет занята.
Сделал это в в виде метода модели(обернув в @property):
class Book(models.Model):
........

	@property
	def get_date(self):
		return [str(self.end - datetime.timedelta(i)) for i in range((self.end - self.start).days)]


При тестировании этого кода, вижу что он ставит в список весь диапазон но всегда упускает один день
Например:
Выбирая диапазон с 2016-05-12 по 2016-05-15,
Вызов метода возвращает такой список: ['2016-05-15', '2016-05-14', '2016-05-13'] (т.е. упускает первый день)

Буду очень признателен любому ответу
  • Вопрос задан
  • 221 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@GeneD88
QA
Вы получаете range(15-12), что выдаст вам 3 результата

return [str(self.end - datetime.timedelta(i)) for i in range((self.end - self.start).days+1)]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы