Django, фильтрация запроса из образцового метода

У меня есть эти модели:

def Foo(Models.model):
    size = models.IntegerField()
    # other fields

    def is_active(self):
         if check_condition:
              return True
         else:
              return False

def Bar(Models.model):
     foo = models.ForeignKey("Foo")
     # other fields

Теперь я хочу запросить Панели, которые имеют активного Foo как такового:

Bar.objects.filter(foo.is_active())

Я получаю ошибку такой как

SyntaxError at /
('non-keyword arg after keyword arg'

Как я могу достигнуть этого?

63
задан ChillarAnand 29 May 2015 в 06:02
поделиться

2 ответа

Вы не можете запрашивать методы или свойства модели. Либо используйте критерии внутри него в запросе, либо отфильтруйте в Python, используя понимание списка или genex.

33
ответ дан 24 November 2019 в 16:25
поделиться

Вы не можете фильтровать методы, однако, если метод is_active в Foo проверяет атрибут в Foo, вы можете использовать синтаксис с двойным подчеркиванием, например Bar.objects.filter (foo__is_active_attribute = True)

10
ответ дан 24 November 2019 в 16:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: