Запустите набор запросов Django без for

#django #django-queryset

#django #django-queryset

Вопрос:

У меня есть запрос в Django, и я хочу применить совпадение в каждом регистре.

     whatever = Whatever.objects.all()

    for w in whatever:
        contador =getMycoincidenceswhatever(w)
  

getMycoincidenceswhatever — это функция, в которой я ищу некоторые совпадения с другой таблицей.

     def getMycoincidenceswhatever(w)

         coincidences=Notificationwhatever.objects.filter
         (Q(field_whatever__in=w.field)).count()
         return coincidences
  

Есть ли какой-нибудь способ сделать это без использования bucle for? Проблема в том, что этот запрос замедляет работу моего сервера, потому что этот пакет.

Ответ №1:

Попробуйте с помощью подзапроса:

 from django.db.models import Subquery, Q


Notificationwhatever.objects.filter(
  field_whatever__in=Subquery(Whatever.objects.all().values("field"))
).count()