Djangoには2つの親と関連付ける必要があるモデルがありますが、どのようにコード化するかを考えようとしています。2つの親と関連付けることができるDjangoモデル
主な問題は、Building
モデルがHeadquarter
にリンクされていることです。各Headquarter
には通常、聴講したすべての建物に電気を供給するElectricSupply
がありますが、Building
にもそれぞれElectricSupply
がある可能性があります。
さらに、各ElectricSupply
は、月単位で格納された1つ以上のモデルとリンクされている。
最終的には、電源が聴取先または各建物から供給されていても、消費電力は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がすべての建物で同じであるとカウントしていないことです。つまり、私は3つの建物を持っていますが、1つのElectricSupplyしか持っていないので、建物に向ける必要があり、他のものは空白にしておく必要があります。だから、それは間違っていて、それは本部モデルがどこにあるのかです... –
どうしてそれが間違っていますか?建物と本部の両方で外部キーを 'null = true'に設定します。 –
さて、 'ElectricSupply'を' Building'と 'Headquarter'にリンクし、両方のForeignKeysを' null = True'に設定することを意味します。私はDjangoに、異なるモデルやそれより少しエレガントなイメージを指すためにユニークな列(ユニークな属性)を使用する方法があるかどうかを知りたいのですが...そうでなければ、それは良いと思いますあまりにも。 –