Запрос данных модели Django Исключение объектов, которые связаны с другой моделью по ForeignKey

У меня есть две модели django с именами Quiz и Result

class Quiz(models.Model):
    name = models.CharField(max_length=250)

другая модель

class Result(models.Model):
    quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE, related_name='results')

Теперь я хочу запросить данные из этого двумя способами

  1. Мне нужны все объекты викторины, у которых нет результата
  2. Мне нужны все объекты викторины, у которых есть результат

Как я могу это сделать?

Вы можете получить желаемые результаты, используя эти запросы...

View.py

from django.db.models import Q

results_obj= Result.objects.all()
quiz_without_result = Quiz.objects.exclude(id__in=results_obj)
quiz_with_result = Quiz.objects.filter(Q(id__in=results_obj))

Сначала мы получим все результаты, затем мы можем получить тесты с условием, что они не должны содержать ни одного теста, который существует в results_obj

Тогда мы можем использовать Q (который представляет собой или оператор для запросов Django), чтобы получить викторины, которые действительно имеют результаты

Вернуться на верх