Получение кверисетов с прямыми результатами

Есть ли способ действительно получить queryset по прямым значениям параметров? Я собираю данные из api и иногда есть 3 варианта. Одна запись может иметь полную дату, то есть год-месяц-день, другая может иметь только год-месяц и третья может иметь только год. Если в моей базе данных есть определенная дата, то я хочу получить ее и добавить в новый объект, но если ее нет, то я хочу создать ее. Проблема в том, что когда я получаю значение, скажем, года 2017, то могу получить значения 2017, 2017-месяц и 2017-месяц-день. Есть ли способ поиска в базе данных, чтобы она могла действовать так, что если параметр не имеет значения, то он является null?

Моя модель здесь:

class Date(models.Model):
    year = models.PositiveIntegerField()
    month = models.PositiveIntegerField(blank=True, null=True, validators=[
            MaxValueValidator(12),
            MinValueValidator(1)])
    day = models.PositiveIntegerField(blank=True, null=True, validators=[
            MaxValueValidator(31),
            MinValueValidator(1)])
Вернуться на верх