【发布时间】:2009-06-16 00:09:49
【问题描述】:
我想知道如何使用 django 模型完成一个简单的“对象所有权”系统,这样,默认情况下,只有对象的所有者可以编辑它。
我正在尝试允许“管理”组代表对象所有者编辑所有对象,并且此时添加了自定义权限:
class Meta:
permissions = (
("manage_object", "Can manage objects"),
)
为了建立“所有权”,我想出了在模型中添加 def 的想法:
def owner(self):
return self.user
但是,我该如何走得更远?我可以在视图中实现权限并使用模板显示相关的 UI,即:
if request.user is object.owner:
# ... do stuff
elseif request.user.has_perm.can_manage: # this line is probably not right
# ... do something else
...然后在模板级别呈现不同的 UI 元素。
所以,问题是:
- 这种方法有什么缺点/好处?
- 有建议吗?
- 或者,任何其他以前实现的方法?
非常感谢!
【问题讨论】:
标签: django