Skip to main content
 首页 » 编程设计

python之如何编写查询集来显示链接到某个类别的所有产品

2025年05月04日18kerrycode

我是 Django 的新手,我想在链接到特定类别的页面上显示我的产品。

我试过 queryset = Product.objects.filter(category__exact='Badges') 这样的代码

这是我的模型。

class ProductCategory(models.Model): 
    title = models.CharField(max_length=200) 
    slug = models.SlugField() 
    parent = models.ForeignKey('self', blank=True, null=True, 
                related_name='children', on_delete=models.PROTECT) 
 
class Product(models.Model): 
    title       = models.CharField(max_length=100) 
    category    = models.ForeignKey(ProductCategory, null=True, blank=True, 
                    on_delete=models.CASCADE) 
    slug        = models.SlugField(blank=True) 
    description = models.TextField() 
    price       = models.DecimalField(decimal_places=2, max_digits=6) 
    image       = models.ImageField(upload_to='products/', null=True, blank=True) 

我希望打印与特定类别相关联的产品中的对象。

请您参考如下方法:

如果您有一个 ProductCategory object,您可以过滤:

Product.objects.filter(<b>category=<i>my_category</i></b>)

然而,您的目标似乎是过滤 title(使用字符串),然后您可以过滤:

Product.objects.filter(<b>category__title='Badges'</b>)

或者对于 slug:

Product.objects.filter(<b>category__slug='Badges'</b>)