我有一個相當複雜的關係,我試圖使用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的某些部分,這將允許我按照「應該」的方式構建這種關係,而不是剽竊並試圖讓事情走到一起?
非常感謝。