@sportik174

Как получить коллекции, в которых есть товары с определенным значением помещения?

Есть 3 модели:

ProductCollections = коллекции в которые входят товары

class ProductCollections(models.Model):
    title = models.CharField(max_length=255, verbose_name='Название')
    slug = models.SlugField(unique=True)
    img = models.ImageField(verbose_name='Фото')
    price = models.PositiveIntegerField(default=0, verbose_name='Цена от')

    def __str__(self):
        return self.title
        
    class Meta:
        verbose_name = 'Коллекция'
        verbose_name_plural = 'Коллекции'


Product = товары

class Product(models.Model):
    # collection = models.ForeignKey("Collections", verbose_name="Коллекция", on_delete=models.CASCADE)
    
    title = models.CharField(max_length=255, verbose_name="Название")
    slug = models.SlugField(unique=True)
    price = models.PositiveIntegerField( default=0, verbose_name="Цена")
    img = models.ImageField(verbose_name='Фото')
    # Many to many
    collections = models.ManyToManyField('ProductCollections', verbose_name='Колекция')
    premises = models.ManyToManyField('Premises', verbose_name='Помещение')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = 'Товар'
        verbose_name_plural = 'Товары'


Premises = помещение

class Premises(models.Model):
    title = models.CharField(max_length=255, verbose_name='Название')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '--- Помещение'
        verbose_name_plural = '--- Помещения'


Как получить коллекции, в которых есть товары с определенным значением помещения?
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
@VkolV
Выбрать сначала товары соответствующие данному помещению, по товарам определить в какие коллекции они входят.
ManyToManyField - один товар в разных помещения и разных коллекциях (несколько избыточно на мой взгляд)?
174? Челябинск? Земляк! : )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы