У меня есть модель foo
и модель bar
.bar
имеет внешний ключ для foo
, а также поле days
, которое является postgresql DateRangeField
class Foo(models.Model):
baz = models.CharField()
class bar(models.Model):
foo = models.ForeignKey(Foo, on_delete=models.CASCADE)
days = DateRangeField()
Мне нужно сделать запрос, учитывая дату (day
),и baz
: получить все объекты Foo, которые удовлетворяют baz = baz
, и что не имеют связанный bar
объект, который удовлетворяет days.lower < days < days.upper
(или, другими словами, не имеют day
в пределах диапазона их переменной days
.
Я посмотрел на Q запросов, но единственный способ, который я нашел, - это получить все Foo
объекты, которые удовлетворяют baz=baz
, а затем используйте python, чтобы сделать остальное (что явно неэффективно с точки зрения запросов к БД).