Django MPTT 获取特定的子类别

时间:2021-05-21 00:29:05

标签: django django-mptt

我有两个模型一个类别和一个产品模型,类别使用django MPTT。我无法获取或过滤特定的孩子。

class Item(models.Model):
    title = models.CharField(max_length=150)
    merchant = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        verbose_name="Merchants",
        on_delete=models.CASCADE,
        related_name="items"
    )
    category = models.ForeignKey(
        Category, on_delete=models.CASCADE, related_name="category"
    )
    price = models.DecimalField(max_digits=9, decimal_places=2)
    discount_price = models.DecimalField(
        max_digits=9, decimal_places=2, blank=True, null=True
    )
class Category(MPTTModel):
    title = models.CharField(max_length=100)
    parent_category = TreeForeignKey(
        "self",
        blank=True,
        null=True,
        on_delete=models.CASCADE,
        related_name="sub_categories",
    )
    slug = models.SlugField(max_length=100)
    vertical = models.ForeignKey(Vertical, on_delete=models.CASCADE, blank=True, null=True)

    class Meta:
        indexes = [GinIndex(fields=["title", "parent_category"])]
        verbose_name_plural = "categories"
        unique_together = ["slug", "parent_category"]

    class MPTTMeta:
        order_insertion_by = ['title']
        parent_attr = 'parent_category'

当我针对 sub_category 运行查询集时遇到的问题,它继续为我提供主类别中的所有对象

items = Item.objects.filter(category__parent_category__sub_categories__slug='flu')

但是它返回父类别下的所有项目,而不仅仅是属于流感类别的项目

非常感谢

0 个答案:

没有答案
相关问题