📅  最后修改于: 2023-12-03 15:00:27.118000             🧑  作者: Mango
在 Django 中,我们可以使用过滤器对查询集进行过滤。可以根据不同的字段进行过滤,在这里我们介绍如何按类别进行过滤。
在开始之前,请确保已经完成以下操作:
我们将使用以下模型类作为示例:
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=100)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.name
在上述示例中,我们定义了 Category
和 Product
模型类。Product
类包含一个外键字段 category
,指向 Category
模型类。
通常,我们可以使用 objects.filter()
方法来过滤查询集。当我们要按类别进行过滤时,可以使用如下代码:
products = Product.objects.filter(category__name='electronics')
在上述代码中,我们过滤出了所有 category
名称为 electronics
的产品。
我们也可以使用 Category
模型类的对象来过滤,通过如下代码:
category = Category.objects.get(name='electronics')
products = Product.objects.filter(category=category)
在上述代码中,我们获取了 name
为 electronics
的 Category
对象,并使用它来过滤 Product
模型类。
通过这篇文章,我们了解了如何在 Django 中按类别过滤查询集。这是一个非常常见的需求,在产品目录等应用程序中非常有用。
最后,我们再次强调一下:在 Django 中,过滤器是非常强大的,请务必熟练掌握它们的使用。