Python 如何在Django中为具有相同访问权限但不同规则的组处理用户管理? 背景资料:
我已经为一家公司创建了一个内部网站。大部分工作都用于制作计算工具,销售人员可以使用这些工具为客户报价。创建可下载的pdf报价和合同,比较价格等。所有这些都很好 现在他们的销售人员分为两组Python 如何在Django中为具有相同访问权限但不同规则的组处理用户管理? 背景资料:,python,django,user-management,Python,Django,User Management,我已经为一家公司创建了一个内部网站。大部分工作都用于制作计算工具,销售人员可以使用这些工具为客户报价。创建可下载的pdf报价和合同,比较价格等。所有这些都很好 现在他们的销售人员分为两组 一组是公司雇佣的销售人员 另一类人是公司本身 问题是: 我现在面临的挑战是,在某些情况下,我需要根据销售人员的类型显示不同的内容。一些计算工具的规则会有不同的规则,比如哪些数字是允许的等等。但是网站的很大一部分对于这两个群体来说仍然是相同的 我想知道的是,是否有处理这个问题的好方法 我自己的想法: 我考虑过使用
组和用户模型上使用
然后在代理模型中编写授权和计算方法。如果以后添加了新组,则只需在这两个代理模型中添加/更改方法。然后让Group和User的每个实例(显然只有在必要的地方,而不是字面上的每个实例)找到代理模型,而不是实际的contrib模型。如果我理解正确,您似乎希望两个不同的组可以访问所有相同的视图,但它们会看到不同的数字。可以通过为不同的组制作单独的模板,然后根据当前用户的组为每个视图加载适当的模板来实现此效果
类似地,您可以使用上下文处理器将当前组放入每个视图的上下文中,然后在模板中放置条件以选择要显示的数字
另一个选项是为两个不同的组提供两组独立的视图。然后在视图上使用装饰器,以确保组只转到它们的视图。计算是作为对象上的方法进行的,该对象保存用于计算的数据,因此无法将计算移动到用户对象。但是代理模型看起来很有趣,我会仔细看一看,如果这能对我有所帮助的话。