我有 2 个这样的 django 模型
class Thread(models.Model):
title = models.CharField(max_length=255, blank=True)
class Post(models.Model):
message = models.TextField(blank=True)
thread = models.ForeignKey(Thread, related_name='posts')
depth = models.PositiveIntegerField(default=0)
reply_to = models.ForeignKey('self', null=True, related_name='replies',
blank=True)
我注意到当我这样做时
roots = Thread.posts.filter(depth=0)
for post in roots:
replies = post.replies
django 执行查询以获取所有根,然后执行新查询以获取特定帖子的子项,我知道我将处理特定线程中的所有帖子。
我想知道是否有一种方法可以让 django 通过一个查询加载所有帖子,我还可以使用模型的关系递归地获取所有子项。