Доступ к множеству полей (меток) из класса category через подкласс (Продукты) Категория-> Товары -> Этикетки

#python-3.x #django #django-models #django-3.1

#python-3.x #джанго #django-модели #django-3.1

Вопрос:

Вот код моего файла моделей:

 from django.db import models

# Create your models here.

class Category(models.Model):
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name

class Product(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='products')
    name = models.CharField(max_length=255)
    price = models.DecimalField(decimal_places=2, max_digits=9)

    def __str__(self):
        return self.name

class Label(models.Model):
    name = models.CharField(max_length=255)
    products = models.ManyToManyField(Product,  related_name='labels')

    def __str__(self):
        return self.name
 

Теперь я хочу получить доступ к полю ManyToMany, то есть к метке из категории
, пожалуйста, помогите мне

Заранее спасибо

Ответ №1:

Вы можете попробовать так.

 # first get the single category object 
category = Category.objects.get(pk=1)
# querying products in this category 
products = category.products.all()
# now filter the Label model based on the category products 
labels = Label.objects.filter(products__in=products)