📜  django 按类别过滤 - Python (1)

📅  最后修改于: 2023-12-03 15:00:27.118000             🧑  作者: Mango

Django 按类别过滤

在 Django 中,我们可以使用过滤器对查询集进行过滤。可以根据不同的字段进行过滤,在这里我们介绍如何按类别进行过滤。

准备工作

在开始之前,请确保已经完成以下操作:

  1. 创建 Django 项目和应用程序。
  2. 定义了模型类,并运行了数据库迁移操作。

我们将使用以下模型类作为示例:

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

在上述示例中,我们定义了 CategoryProduct 模型类。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)

在上述代码中,我们获取了 nameelectronicsCategory 对象,并使用它来过滤 Product 模型类。

结论

通过这篇文章,我们了解了如何在 Django 中按类别过滤查询集。这是一个非常常见的需求,在产品目录等应用程序中非常有用。

最后,我们再次强调一下:在 Django 中,过滤器是非常强大的,请务必熟练掌握它们的使用。