我的系统中有对象与所有者和协作者有关系,现在我需要添加查看这些对象的权限。目前,如果用户是所有者或列为协作者,他们可以看到该对象。我已经封装了这个逻辑,但似乎“正确”的方式是使用行级权限系统并为这些用户分配权限。然而,在分配和删除权限时会变得更加复杂,并且由于必须在数据库中查找权限而不是依赖于已经访问的数据,因此查看会更加昂贵。我一直在调查django-guardian,现在看起来有点矫枉过正。
答案 0 :(得分:0)
结帐django-logical-rules。规则是用python编写的,你可以将现有的对象传递给规则,所以它们不一定是db命中...虽然我建议使用缓存。规则可以轻松地与通用视图集成,并可通过模板标记访问。