Фильтр DJANGO Queryset по внутренним вычислениям на вложенной модели - PullRequest
0 голосов
/ 06 июля 2019

У меня есть модель со следующими полями:

  • required_visits: положительное целое число
  • человек - другая модель с: именем, возрастом, curr_week_visits

Я бы хотел отфильтровать все строки, в которых верно следующее вычисление:

required_visits__minus__person__curr_week_visits__gt = 0

словами: количество посещений модели за вычетом посещений этого человека больше 0

Как правильно написать этот набор запросов фильтра?

1 Ответ

1 голос
/ 06 июля 2019

Попробуйте использовать annotation with F() expression:

from django.db.models import F

ModelName.objects.annotate(
    visit_difference=F('required_visits') - F('person__curr_week_visits')
).filter(visit_difference__gt=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...