无法在 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}')

相关内容

  • 没有找到相关文章

最新更新