我在我的网站上使用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_by
或access_list
,但尝试拥有ForeignKey(User)
和{{{ 1}}不会在模型上验证。
是否有更好的方法可以阻止创建项目的用户从列表中启动,同时仍然允许用户能够剔除他们的协作者列表?
答案 0 :(得分:0)
你可以在你的字段上添加related_name
,它应该验证:
access_list = models.ManyToManyField(User, related_name='user_access_list')