Django, фильтр по указанному месяцу и году в диапазоне дат
У меня есть следующие модели
class Destination_Deal(models.Model):
name = models.CharField(_("Nombre"),max_length=200)
class Departure_Date(models.Model):
date_from= models.DateField(_('Desde'))
date_to= models.DateField(_('Hasta'))
destination_deal = models.ForeignKey(Destination_Deal,verbose_name = _("Oferta de Destino"))
Это фактические данные в таблице выписке
id date_from date_to destination_deal_id
1 2012-11-01 2013-03-17 1
2 2012-11-01 2012-12-16 2
3 2012-09-16 2012-10-31 3
4 2012-11-01 2012-12-16 3
5 2013-01-04 2013-01-11 4
Я хотел бы отфильтровать Destination_Deals, если указанный месяц &год находится между date_from и date_to.
Пример 1
Месяц: сентябрь (09)
Год: 2012
Требуются результаты дат отправления:
ID 3: это единственный диапазон данных, который касается 09/2012
Пример 2
Месяц: февраль (02)
2013 год
Требуются результаты дат отправления:
ID 1: 02/2012 до 03/2012
Таким образом, день на самом деле не имеет значения. Если месяц &year находится между date_from и date_to, даже если это один день, он должен быть фильтрован.
Я думаю, что я должен использовать что-то вродеэтот но я не уверен, как это сделать.
Заранее спасибо! Miguel
---Редактировать---
Это тест для ответа от Аамира Аднана, но он не работает, как я ожидал, так как ID 1 также должен быть возвращен, потому что он идет с ноября 2012 года по март 2013 года, поэтому январь 2013 между.
Departure_Date.objects.all()
[,
,
,
,
]
month:1
year:2013
where = '%(year)s >= YEAR(date_from) AND %(month)s >= MONTH(date_from) \
AND %(year)s