我有一个相当复杂的关系,我试图使用Django管理站点进行工作。我花了相当一段时间来试图解决这个问题,看起来好像我没有得到Django模型背后的哲学。Django:构建与内置管理站点配合使用的复杂关系
有一个组的列表。每个小组都有多个部门。也有员工。每个员工属于一个组,但某些员工也属于一个组内的一个部门。 (有些员工可能只属于一个集团,但不属于部门,但没有员工只属于一个部门)。
这里是什么,我现在有一个简化版本:
class Group:
name = models.CharField(max_length=128)
class Department
group = models.ForeignKey(Group)
class Employee
department = models.ForeignKey(Department)
group = models.ForeignKey(Group)
这样做的问题是,员工页面上的部门选择框必须显示所有的部门,因为一组尚未设定。我试图通过为GroupAdmin页面创建一个EmployeeInline来纠正这种情况,但在非分页内联中拥有500多名员工并不好。我必须能够为Employees员工使用models.ModelAdmin页面(除非有内联搜索,排序,折叠和执行操作的方法)。
如果我让EmployeeInline DepartmentAdmin的内联(而不必在GroupAdmin一个DepartmentInline),那么事情更糟,因为它是不可能有不属于一个集团的员工。
鉴于我对关系的描述,我是否错过了Django ORM的某些部分,这将允许我按照“应该”的方式构建这种关系,而不是剽窃并试图让事情走到一起?
非常感谢。