Запрос данных модели 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')
Теперь я хочу запросить данные из этого двумя способами
- Мне нужны все объекты викторины, у которых нет результата
- Мне нужны все объекты викторины, у которых есть результат
Как я могу это сделать?
Вы можете получить желаемые результаты, используя эти запросы...
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), чтобы получить викторины, которые действительно имеют результаты