可以与两个父节点关联的Django模型



我在Django中有一个模型,我认为它需要与两个父母相关联,但我正试图找出如何编码它。

主要问题是我们得到了与Headquarter相关联的Building模型。每个Headquarter通常都有一个ElectricSupply,为总部的所有建筑供电,但也有可能每个Building都有自己的ElectricSupply

此外,每个ElectricSupply都与一个或多个按月存储的ElectricBill模型相关联。

所以,最后我必须能够得到Headquarter的电力消耗,无论电源是来自总部还是每个建筑。

class Headquarter(models.Model):
    # ...
    def get_consumption(self):
        # Here I need to know where to look for the supply
class Building(models.Model):
    # ...
    headquarter = models.ForeignKey(Headquarter, related_name='buildings')
class ElectricSupply(models.Model):
    # Here I don't know where to point, Headquarter or Building, or both?
class ElectricBill(models.Model):
    # ...
    supply = models.ForeignKey(ElectricSupply, related_name='bills')

希望你能帮助我。谢谢。

我认为每个建筑都应该有ElectricSupply,所以你应该从ElectricSupply指向建筑,然后如果你想找到总部,你可以很容易地从建筑中获得,你也有指向总部的外键。此外,我认为每个建筑物都应该与ElectricBill相关联,因此您应该将ElectricBill中的外键更改为指向建筑物。

最新更新