gpt4 book ai didi

python - 如何在 Django 中处理具有相同访问权限但不同规则的组的用户管理?

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:21 24 4
gpt4 key购买 nike

背景资料:

我为一家公司创建了一个内部网站。大部分工作都用于制作计算工具,他们的销售人员可以使用这些工具为客户提供报价。创建可以下载的 pdf 报价和契约(Contract)、比较价格等。所有这些都运行良好。

现在他们的销售人员分为两组。

  1. 一组是公司雇用的销售人员。
  2. 另一组是公司本身的个人。

问题:

我现在面临的挑战是,在某些情况下,我需要根据销售人员的类型显示不同的内容。一些计算工具的规则对于允许使用哪些数字等有不同的规则。但是站点的很大一部分对于两个组来说仍然是相同的。

我想知道的是,有没有好的方法来处理这个问题?

我自己的想法:

我考虑过使用 contrib.auth 中可用的组来管理它。这样我可以保留一个代码库,但必须在很多不同的地方制定规则。验证表单以检查是否允许输入数字的规则将取决于用户所在的组。有些东西会有不同的名称,或者工作流程可能会有点不同。一些工具将只对其中一个组可用。这似乎是此时此地的快速解决方案,但如果这两个团队需要进行越来越多的更改,这似乎很快就会变得难以管理。

我还考虑过制作两个不同的网站。这里的想法是创建两个组都使用的应用程序,所以我只需要为那个地方制作代码。然后我可以为每个站点制作自定义部分,并且不需要在大多数模板和 View 中检查用户。但我不确定这是否是解决问题的好方法。这会产生很多额外的工作,如果两个小组可以使用很多相同的代码,那么这可能真的不需要。

最大的担忧是,我真的不知道这是如何演变的,所以这两个群体最终可能完全不同,或者只有很少的差异。我想做的是编写一些可以支持这两种情况的代码,这样我就不会在半年后后悔自己的选择。

那么,您如何处理这种用户管理案例。我正在寻找解决此问题的创意技术或可重复使用的应用程序,而不是现成的解决方案。

说明:

我的问题不是可以用模板完成的纯粹表示,而是某些计算工具(填写的表格)将应用不同的规则/验证,并且在某些情况下完成的计算也将是不同的。因此他们可能会看到相同的表格,但不会被允许输入相同的数字,并且相同的数字可能不会给出相同的结果。

最佳答案

你可以使用 proxy models在 django 附带的 GroupUser 模型上。

然后在代理模型里面写你的授权和计算方法。如果稍后添加新组,您只需要添加/更改这两个代理模型内部的方法。然后让 Group 和 User 的每个实例(显然只在必要时,而不是字面意义上的每个实例)找到代理模型而不是实际的 contrib 模型。

关于python - 如何在 Django 中处理具有相同访问权限但不同规则的组的用户管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com