gpt4 book ai didi

python - Django 交叉表模型结构

转载 作者:太空狗 更新时间:2023-10-29 22:27:18 26 4
gpt4 key购买 nike

我有一个系统 模型和一个接口(interface) 模型。接口(interface)是两个系统之间的组合。以前,此界面表示为 Excel 工作表(交叉表)。现在我想将它存储在数据库中。

我尝试创建一个接口(interface)模型,其中有两个外键指向 System.这不起作用,因为:

  • 它在目标模型上创建了两个不同的反向关系
  • 它不会避免重复(第一个和第二个 rel 交换)

我使用了这段代码:

class SystemInterface(Interface):
assigned_to = models.ManyToManyField(User)
first_system = models.ForeignKey(System)
second_system = models.ForeignKey(System)

有没有更好的方法来做到这一点?

我需要有对称关系:系统是接口(interface)中的“第一个”还是“第二个”无关紧要。

最佳答案

我认为最好最简单地表示这些模型是这样的:

class System(models.Model):
pass

class Interface(models.Model):
assigned_to = models.ManyToManyField(to=User)
system = models.ForeignKey(System)

@property
def systems(self):
Interface.objects.get(system=self.system).interfacedsystem_set.all()

class InterfacedSystem(models.Model):
interface = models.ForeignKey(Interface)
system = models.ForeignKey(System)

接口(interface)系统的添加/删除显然留给读者作为练习,放置应该很容易。

关于python - Django 交叉表模型结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com