Python Django中的用户特定模型

Python Django中的用户特定模型,python,django,django-models,Python,Django,Django Models,我有一个包含项的模型,它有许多不同的字段。还有一个模型使用m2m关系将该字段的一组分配给每个用户 我想实现的是,最终,每个用户都可以访问项目模型中定义的一组字段,他只能在视图中看到这些字段,他只能编辑这些字段等等。 有没有通用的方法来设置它?一种方法是将项目模型分解为可单独分配给用户的部分。如果您有固定的用户类型admin、customer、team等,这些用户总是可以看到相同的字段集,那么这些部分将是整个字段组。如果它是非常动态的,并且您希望能够为每个用户设置单独的字段,那么每个字段都是其自身

我有一个包含项的模型,它有许多不同的字段。还有一个模型使用m2m关系将该字段的一组分配给每个用户

我想实现的是,最终,每个用户都可以访问项目模型中定义的一组字段,他只能在视图中看到这些字段,他只能编辑这些字段等等。
有没有通用的方法来设置它?

一种方法是将项目模型分解为可单独分配给用户的部分。如果您有固定的用户类型admin、customer、team等,这些用户总是可以看到相同的字段集,那么这些部分将是整个字段组。如果它是非常动态的,并且您希望能够为每个用户设置单独的字段,那么每个字段都是其自身的一部分


这样,您将拥有一个元项,该元项仅由部件可以引用的Id组成。这把各个部分结合在一起。然后,将用户映射到零件而不是项目,并从零件的公共Id重建项目视图。

第二种方法是不在模型层中包含过滤。也就是说,您将模型层上的映射保持原样,并为每个用户检索完整的项字段集。然后,通过实现规则的过滤器传递项目


哪种方法更适合您取决于您希望如何过滤。如果是固定类型的用户,我可能会实现一个基于规则的后处理器,如果它非常动态,我会从我的。将筛选规则放入模型的另一个原因是,如果您希望在无法重用筛选引擎的应用程序中重用模型,例如,如果您有使用不同语言的应用程序共享同一数据库。

因此,基本上,您有三个实体/模型/表:Item MapItemUser User User?您希望MapItemUser充当筛选器,这样每个用户只能看到项目的一部分,对吗?您是希望筛选器完全动态,还是希望有固定类型的用户角色始终可以看到相同的字段集?很抱歉延迟,谢谢您的回答。场景相当简单:项目模型有大量可能的字段,每个用户只能访问其中的一小部分。我认为,这必须在模具模型中实现,而不是在视图中实现,以对其进行概括。您将如何构建这样的过滤器?