У меня есть следующие три модели:
class Category(models.Model):
name = models.CharField(max_length=120)
class Experiment(models.Model):
name = models.CharField(max_length=50, unique=True)
categories = models.ManyToManyField(Category)
class Ad(models.Model):
experiment = models.ForeignKey(Experiment, related_name='ads', on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.PROTECT, blank=True, null=True)
Я хочу создать набор запросов, который возвращает все объявления, где ad.category находится в ad.experiment.categories.
Некоторые примеры данных для обсуждения:
Категория: ['Cat1', 'Cat2', 'Cat3', Cat4 ',' Cat5 ']
Эксперимент: [['Exp1', ['Cat2', 'Cat3]], [' Exp2 ', [' Cat5 ',' Cat1 ']]]
Объявление: [['Exp1', 'Cat4'], ['Exp1', 'Cat2']]
Набор запросов, который я надеюсь создать, будет возвращать только второе объявление, поскольку категория объявления находится в категории эксперимента объявления.
Буду признателен за любую помощь!