【发布时间】:2013-08-10 10:47:41
【问题描述】:
我在我的网站上使用 ManyToManyField 作为 access_list:
class Projects(models.Model):
access_list = models.ManyToManyField(User)
在我的 Views.py 中,我将创建项目的用户保存到 access_list,然后我在 access_update.html 页面上的 access_list 中显示用户,用户可以在其中添加另一个名称提交到access_list,允许更多的合作者。还有一个删除用户按钮,您可以从access_list 中删除用户。
但我最担心的是,现在,如果用户在 access_list 上,他们可以进入并从 access_list 中删除原始创建者,并拒绝他们访问该项目。
我想拥有一个created_by = models.ForeignKey(User) 作为备份,这样我的权限将基于created_by 或access_list,但尝试拥有ForeignKey(User) 和ManyToManyField(User) 将无法在模型上验证.
有没有更好的方法来防止创建项目的用户被从列表中删除,同时仍然允许用户能够挑选他们的合作者列表?
【问题讨论】: