Django用户组仅用于权限?

Django用户组仅用于权限?,django,database-design,Django,Database Design,我有点不确定如何使用Django用户组 我有一个应用程序,每个用户都属于不同的组织。这些组织与读/写权限无关。这只是一种分离用户组的方法。每个组织都需要一些附加字段,如名称、URL和电子邮件地址。随着时间的推移,新的组织将被添加到系统中。 在每个组织中,用户可以有不同的权限进行调节和管理,对此我(也)希望使用用户组 我的问题是:我应该使用Django的用户组来定义组织,还是仅仅建立一个与用户相关的“组织”模型。创建用户组的原因不同。你可以用它们来定义组织,但我认为你应该想得更远一些: 组织是否

我有点不确定如何使用Django用户组

我有一个应用程序,每个用户都属于不同的组织。这些组织与读/写权限无关。这只是一种分离用户组的方法。每个组织都需要一些附加字段,如名称、URL和电子邮件地址。随着时间的推移,新的组织将被添加到系统中。 在每个组织中,用户可以有不同的权限进行调节和管理,对此我(也)希望使用用户组


我的问题是:我应该使用Django的用户组来定义组织,还是仅仅建立一个与用户相关的“组织”模型。创建用户组的原因不同。你可以用它们来定义组织,但我认为你应该想得更远一些:

  • 组织是否需要更多的字段而不仅仅是名称
  • 也许您将来需要权限来定义组织中的用户角色
我相信你能想出更多的事情来考虑。但是,如果您对其中一个问题的回答是肯定的,那么只需创建您的组织模型。

1)您需要在
表下添加
中的
django admin

2) 在创建新用户时,使用
user\u obj.groups.add(group\u id)
将特定的
group
分配给
user
。或者让用户在前端选择
group

然后
user\u obj.save()

表中,您可以创建
组织


您可以创建单个
组织
表,并将分配用户分配给特定组织。

请注意,django中的权限适用于整个模型,而不是这些模型中的实例。例如,您的“OrgA”组可以修改所有组织,也可以不修改任何组织。您可能需要查看django guardian或类似的东西以获得对象级权限。@JoshSmeaton您确定吗?也许它改变了,因为在Django 1.8官方文档中,我可以看到:权限不仅可以按对象类型设置,还可以按特定对象设置instance@DavidD. API存在于实例级权限中,但内置的django权限不使用它们(从内存中)。这就是为什么我建议其他django软件包实际使用实例级权限API的原因,所以我建议使用group table作为一个组织。而不是创建新的。因为用户和组表之间已经存在关系,所以这可能是错误的决定。OP不需要单一的组织团体。他们需要许多不同的组,每个组上都有额外的字段。他可以覆盖django项目中的组表,并在其中添加新字段。这也不是一个好的选择。这样的事情不应该要求覆盖现有的功能,而是应该扩展现有的功能。但扩展组对象仍将创建新表。那么,为什么不直接创建一个新的组织表格呢?或他们可以定义一个新模型。组模型本身没有什么特别之处,只是它允许管理员指定和使用对一组用户而不是单个用户的权限。OP想要的权限类型无论如何都不会对团体起作用。你的问题的答案肯定是肯定的,所以我想我会接受你的建议,建立自己的组织模式。谢谢