0
我需要在Django中表示多個一對多關係。也就是說,給定幾個不同的模型,我需要這些中的每個與單個表具有一對多關係。從邏輯上講,該關係屬於「擁有」一對多關係的模型,但是Django強迫我在目標表上使用多對一的關係,而不是一對多來源表。以下是我希望我能做的事情:Django中的多個一對多關係
class Sink(models.Model):
name = models.CharField('name', max_length=24)
class A(models.Model):
name = models.CharField('name', max_length=24)
sink = models.ManyToOneField(Sink)
class B(models.Model):
name = models.CharField('name', max_length=24)
sink = models.ManyToOneField(Sink)
但ManyToOneField
不存在。取而代之的是,我應該使用ForeignKey
爲每個一到許多領域,如:
class Sink(models.Model):
name = models.CharField('name', max_length=24)
a = models.ForeignKey(A)
b = models.ForeignKey(B)
class A(models.Model):
name = models.CharField('name', max_length=24)
class B(models.Model):
name = models.CharField('name', max_length=24)
這是邏輯上只是錯,因爲從來就沒有,我想這兩個Sink.a的情況下,和Sink.b是非空的。如果ManyToManyField
允許我指定它不是真的多對多,我可以這樣做,但它似乎不允許。什麼是正確的方式來做這樣的事情?