0

ManyToManyField在我的网站上使用了一个 access_list :

class Projects(models.Model):
    access_list = models.ManyToManyField(User)

在我的 Views.py 中,我将创建项目的用户保存到 中access_list,然后在access_list页面上显示用户access_update.html,用户可以在其中添加另一个名称以提交到access_list,从而允许更多协作者。还有一个删除用户按钮,因此您可以从access_list.

不过,我最担心的是,现在,如果用户在 上access_list,他们可以进入并从中删除原始创建者,access_list并拒绝他们访问项目。

我想拥有 acreated_by = models.ForeignKey(User)作为备份,以便我的许可基于created_byOR access_list,但尝试拥有 aForeignKey(User)和 aManyToManyField(User)不会在模型上验证。

有没有更好的方法来防止创建项目的用户被从列表中删除,同时仍然允许用户有能力挑选他们的合作者列表?

4

1 回答 1

0

你可以related_name在你的领域放一个,它应该验证:

access_list = models.ManyToManyField(User, related_name='user_access_list')
于 2013-08-08T16:50:14.163 回答