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

Моя миграция верна?

Какой набор запросов я должен выполнить для удовлетворения моих потребностей.

0 ответов

Другие вопросы по тегам