在Django查询中遍历无限数量的子对象

2024-04-26 11:56:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个定义类别列表的Django模型。每个类别都可以是另一个类别的子类别,而且这个类别列表的深度可能会持续相当长的时间。在

模型.py

class Category(models.Model):
    code = UUIDField(unique=True, primary_key=True)
    name = models.CharField(max_length=100, null=True, blank=True, unique=True)
    parent_cat = models.ForeignKey('self', null=True, blank=True)

例如,考虑一个女装类别。它可能有如下内容:

女装>;连衣裙>;夏季

这一切都很好,但是我想单独构建一个函数,它可以构建一个包含树中每个类别的外推视图的列表。为此,我写了以下内容:

^{pr2}$

我意识到这段代码可能相当草率,我还在学习!在

正如你可能意识到的,这只会给我两个层次的子对象。在

我的问题是:我可以用什么最有效的方法来编写这段代码,这样它就可以找到所有可能的类别,直到它到达最后一个没有子对象的对象为止?在

谢谢!!在


Tags: 对象django代码模型gttrue列表定义