0

假设我的模型中有以下类:

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 的情况下实现这一点?

4

1 回答 1

0

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

更多详情请点击这里

于 2012-06-08T05:53:43.163 回答