Django使用manytomany字段管理用户访问列表

时间:2013-08-08 16:06:28

标签: django manytomanyfield

我在我的网站上使用ManyToManyField作为access_list:

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

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

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

我希望created_by = models.ForeignKey(User)作为备份,以便我的许可将基于created_byaccess_list,但尝试拥有ForeignKey(User)和{{{ 1}}不会在模型上验证。

是否有更好的方法可以阻止创建项目的用户从列表中启动,同时仍然允许用户能够剔除他们的协作者列表?

1 个答案:

答案 0 :(得分:0)

你可以在你的字段上添加related_name,它应该验证:

access_list = models.ManyToManyField(User, related_name='user_access_list')