Django.fun

Query M2M relations in Django

I've the following model:

class Quiz(models.Model):
    name = models.CharField(max_length=255)
    month = models.DateField()

class Question(models.Model):
    title = models.CharField(max_lenght=255)
    category = models.CharField(max_length=255)
    status = models.CharField(max_length=255, status=(('Pending', 'Pending'), ('Approved', 'Approved'))

class Contest(models.Model):
    quiz = models.ForeignKey(Quiz, on_delete=models.CASCADE)
    questions = models.ManyToManyField(Question, related_name='contest_questions')

Now I want to get list of quizes with all questions whose status=Pending?

Any help would be much appreciated!

Another approach is query directly from the M2M table using values_list():

quiz_ids = list(Contest.objects.filter(questions__status='Pending').values_list('quiz__id', flat=True))

quiz_query = Quiz.objects.filter(id__in=quiz_ids)

Tutorials

Константы Python: Улучшение управляемости вашего кода

Современный Python: начинаем проект с pyenv и poetry

Настройка проекта Python — виртуальные среды и управление пакетами

Использование requests в Python — тайм-ауты, повторы, хуки

Понимание декораторов в Python

ProcessPoolExecutor в Python: полное руководство

map() против submit() с ProcessPoolExecutor в Python

Понимание атрибутов, словарей и слотов в Python

Полное руководство по slice в Python

Выпуск Django 4.0

Безопасное развертывание приложения Django с помощью Gunicorn, Nginx и HTTPS

Автоматический повтор невыполненных задач Celery

Django REST Framework и Elasticsearch

Докеризация Django с помощью Postgres, Gunicorn и Nginx

Асинхронные задачи с Django и Celery

Релизы безопасности Django: 3.2.4, 3.1.12 и 2.2.24

Выпуски исправлений ошибок Django: 3.2.3, 3.1.11 и 2.2.23

Эффективное использование сериализаторов Django REST Framework

Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

Выпущенные релизы безопасности Django: 3.2.1, 3.1.9 и 2.2.21

View all tutorials →