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
允许我指定它不是真的多对多,我可以这样做,但它似乎不允许。什么是正确的方式来做这样的事情?