Python “Django多对多关系”;透过「;

Python “Django多对多关系”;透过「;,python,django,Python,Django,我正在建立一个有多个部件的设备模型。每一件作品都是一个模型,它们之间有着千丝万缕的联系 class Station(models.Model): name = models.CharField class Sensor(models.Model): name = models.CharField brand = models.CharField model = models.CharField station = models.ManyToManyFie

我正在建立一个有多个部件的设备模型。每一件作品都是一个模型,它们之间有着千丝万缕的联系

class Station(models.Model):
    name = models.CharField

class Sensor(models.Model):
    name = models.CharField
    brand = models.CharField
    model = models.CharField
    station = models.ManyToManyField(Station, through='Relationship')

class Digitalizer(models.Model):
    name = models.CharField
    brand = models.CharField
    model = models.CharField
    station = models.ManyToManyField(Station, through='Relationship2')

class Relationship(models.Model):

    station = models.ForeignKey(Station)
    sensor = models.ForeignKey(Sensor)
    setting_up_date = models.DateField()
    removal_date = models.DateField()
由于我想保存设备上包含的部件的一些历史信息,我想使用中间模型或关系来保存有关部件安装和移除日期的信息(类似于文档的成员资格示例)

我的问题是,我是否可以对需要与传感器模型关联的2个或更多模型使用相同的“关系”?或者我需要复制每个模型的关系吗

像这样的

class Relationship(models.Model):

    station = models.ForeignKey(Station)

    sensor = models.ForeignKey(Sensor)
    digitalizer = models.ForeignKey(Digitalizer)
    foo = models.ForeignKey(Foo)
    setting_up_date = models.DateField()
    removal_date = models.DateField()

我对你的问题有点困惑,但我会将日期(删除等)直接放在相关模型(即删除的片段)中,并将它们(片段)链接到station(?)和history模型,但仅在删除时将其从station中删除。首先,中间模型应该只包含源模型的一个外键,并且只有一个外键指向目标模型。如果添加“foo=models.ForeignKey(foo)”,则会出现错误。在幕后,SQL就是这样设计来处理M2M字段的。第二,如果我理解正确,请回答您的问题,您不能使用相同的关系中间模型,因为源模型和目标模型不同,但您可以使用另一个中间模型,就像您已经使用“relationship2”一样,具有与关系模型相同的模式。谢谢各位,这是我需要确定的。