我有一个与用户有多对多“收藏夹”关系的文档模型。当我在搜索页面上显示文档列表时,我想显示每个文档是否是当前用户的收藏夹。我知道这样做的两种方法,一种更有效,一种更清洁。我想知道是否有另一种方法可以做到这一点,既高效又干净。
干净的版本。只需在模型“is_favored(user)”上设置一个方法,该方法可以判断文档是否受到给定用户的青睐。然后有一个简单的模板标签,它使用这个功能来显示一个空的星形或一个填充的星形。当然这效率不高,因为它会对每个文档进行不同的数据库调用。但这很好,因为不必以任何方式更改视图。
高效版。在视图中执行单个数据库查询以检索最喜欢的查询并在每个 Document 上添加一个“favored”字段。我不喜欢这种方法,因为我必须将自定义代码添加到显示文档的所有视图中,而且它不太干。
有没有更好的方法,既干燥又高效?谢谢。