Django Queryset - фильтр "до даты окончания", если он существует
У меня есть модель, в которой нет DateField, теперь я перевожу ее с "на юг"; и я добавляю "start_date" и "end_date" к нему:
class MyModel(models.Model):
my_attribute = models.CharField(max_length=100)
start_date = models.DateField(default = date.today)#Newly added field
end_date = models.DateField(blank=True, null=True)#Newly added field
Для существующих записей в базе данных (и будущих) начальная дата будет по умолчанию установлена на текущую дату, старые записи не будут иметь конечную дату, а у будущих может быть пустая конечная дата, если она не указана.
Моя потребность: ДАТА:
Фильтровать объекты из БД, что DATE находится между start_date и end_date, если объект имеет дату начала и окончания (например:
MyModel.objects.filter(start_date__lte=DATE, end_date__gte=DATE
)Фильтровать объекты из БД, что DATE новее, чем start_date, если объект имеет пустое (или нулевое) значение end_date
Моя миграция верна?
Какой набор запросов я должен выполнить для удовлетворения моих потребностей.