给定的user
可以是以下类别中的零个或多个:
floor staff
managers
owners
如果用户为floor staff
,则需要额外的属性(例如seniority
和staffType
)。
我最初的尝试看起来像这样:
Group
(这似乎有意义,因为每种类型的用户都应该在网站中拥有不同的权限)FloorStaff
模型,并与User
建立一对一的关系User
创建和FloorStaff
创建(即使用单独的表单,单独访问)。要创建FloorStaff
的表单会自动将User
添加到floor staff
组。虽然这有效,但这不是向网站添加新员工员工的最直观方式。从经理的角度来看,填写2个表单来添加一个员工毫无意义。也就是说,如果我雇用一个新人,我应该能够填写一份“新员工”表格,其中包括在添加他们的基本信息的同时将所述员工添加到正确的类别(y / ies),如果是employee应为floor staff
,然后还应添加额外属性。
我一直在努力创建一个包含额外属性的自定义用户模型,但考虑到并非所有User
都是FloorStaff
,这种感觉都是错误的。
此时我所能想到的就是构建一个自定义视图和HTML表单,但这似乎也违背了Django的思维方式。
最“Djangoific”的方法是什么?
答案 0 :(得分:0)
我建议将seniority和staffType作为可选字段,然后创建一个自定义模型管理员,在楼层工作人员为真时强制提供这些字段