0
我有2個Django模型:做非外鍵連接在Django經理
class Person(CommonModel):
""" Person """
person_type = models.ForeignKey(PersonType)
ciam_id = models.PositiveIntegerField() # ForeignKey('ciam.person_id')
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
middle_name = models.CharField(max_length=50)
empl_id = models.CharField(max_length=8)
pcn = models.CharField(max_length=50)
...
和
class PositionHierarchy(CommonModel):
""" Position Hierarchy """
pcn = models.CharField(max_length=50)
title = models.CharField(max_length=100)
level = models.CharField(max_length=25)
reports_to_pcn = models.CharField(max_length=50, db_index=True) # FK?
不幸的是,我無法控制的原因(與超越的原因),唯一的辦法判斷一個人是否是經理是看Person.pcn,用pcn查找他們的PositionHierarchy,然後在PositionHierarchy中查看他們的級別。同樣,找到經理姓名(我需要很多)的唯一方法是使用他們的Person.pcn,通過pcn查找他們的PositionHierarchy,通過reports_to_pcn查找他們經理的PositionHierarchy,然後使用該pcn查找經理的人員記錄。並且這些PCN都不允許被PositionHeirarchy模型的外鍵替換。多麼令人費解的混亂,對吧?
所以我需要能夠快速查找一個人,並查看他們的級別和經理姓名。