查询Django模型中的相关对象集

时间:2012-06-08 05:04:20

标签: django django-models

假设我在我的模型中跟随类:

class User(BaseModel):
  ..

class Node(BaseModel):
  ..
  author = models.ForeignKey(User, related_name='%(class)ss')
  tags   = models.ManyToManyField('Tag', related_name='%(class)ss')
  ..

class Tag(BaseModel):
  ..

现在,我希望在User类中有一个方法,它将返回用户节点的所有标记:

class User(BaseModel):
  ..
  def get_tags(self):

    # Here some more querying for tags in selected nodes
    user_tags = self.nodes.filter(author=self) # What to add if possible?

    return ..

我希望user_tag集合包含已由给定用户创作的节点中使用的所有标记。如何在没有自定义SQL的情况下实现这一目标?

1 个答案:

答案 0 :(得分:0)

如果你的问题正确,这应该这样做,select_related()方法递归预先填充所有一对多关系的缓存。

更多详情click here