Как фильтровать ManyToMany по ForeignKey используя третью модель?

Не могу понять как сделать отображение доступных к покупке сервисных наборов основываясь на уже купленных оборудованиях.

Допустим пользователь купил оборудование и после этого ему открываются к покупке сервисные наборы для данного оборудования. Сервисный набор по ManyToMany может принадлежать к нескольким оборудованиям из базы товаров и имеет по 3 набора к ним. Уже купленные товары привязываются ForeignKey к базе товаров, пользователь может несколько раз купить один и тоже товар

class Storage(models.Model):
    name = models.CharField('Наименование', max_length=100)
    desc = models.TextField('Описание')
    ...

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'База товаров'

class Orders(models.Model):
    equipment = models.ForeignKey(Storage, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE,)
    ...

    def __str__(self):
        return self.id

    class Meta:
        verbose_name = 'Покупки'

class ServiceKit(models.Model):
    name = models.CharField('Наименование', max_length=100)
    equipments = models.ManyToManyField(Storage)
    ...

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'Сервисные наборы'
Вернуться на верх