Невозможно выбрать связанную категорию в Django

У меня есть 2 модели с пользовательским ProductManager

class ProductManager(models.Manager):
    def get_queryset(self):
        return super(ProductManager, self).get_queryset().filter(is_active=True)

class InnerCategory(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField(unique=True)

class Product(models.Model):
    name = models.CharField(max_length=70)
    category = models.ForeignKey(InnerCategory, null=True, on_delete=models.SET_NULL)
    slug = models.SlugField(unique=True)
    is_active = models.BooleanField(default=False)
    objects = models.Manager()
    products = ProductManager()

Итак, я пытаюсь получить набор запросов продукта и выбрать связанную с ним категорию, например, так

queryset = Product.products.filter(
            category__slug=self.kwargs['category_slug']
            ).select_related('category')

print(queryset.category)

и когда я пытаюсь запустить эту страницу, я получаю ошибку

AttributeError: объект 'QuerySet' не имеет атрибута 'category'

Итак, как я могу получить все мои продукты и категории в одном запросе

Ваш запрос кажется правильным и получит подмножество товаров и их категорий. Запрос возвращает набор запросов QuerySet, и вы пытались получить доступ к несуществующему атрибуту на нем.

В зависимости от того, что вы хотите сделать с вашими результатами, вы можете получить к ним доступ следующим образом:

for product in queryset:
    print(f'{product.name} - {product.category.name}')
Вернуться на верх