在Django应用程序中,我有一个名为application.py的模型,该模型是由用户说“ u”创建的。我想稍后列出用户“ u”创建的所有应用程序,因此我可能需要从user.py添加对模型application.py的引用。
作为管理员,我还有一个要求,我需要向同一应用程序的任意数量的用户提供访问权限。因此,我认为这可以通过多对多关系完成(因为用户可以访问许多应用程序)。
现在的问题是,是否可以用用户组来实现此行为,一个组负责处理一个应用程序,以便在以后的某个时间点,我可以根据需要从后端向各个用户添加任意数量的用户。组来管理相同的应用程序??
哪个更好,使用模型application.py或将组与application.py相关联来管理用户 和使用组管理用户。
答案 0 :(得分:0)
有多种解决方法,但是从将来的灵活性角度来看,这听起来像是角色,权限和组关系:
Application
与User
和through
的{{1}}有多对多的关系。Membership
。开头可能是硬编码的(只是一个字符串,例如“ admin”或“ viewer”)。 Role
可以与User
或Application
关联到viewer
。 admin
(并且可以与一个或多个Role
模型相关联以列出每个角色的权限)。因此Permission
可以通过ForeignKey指向Membership
的指针。 检查多对多关系中其他字段上的documentation。
也有解决此问题的软件包,例如django-permissions和django-role-permission