【发布时间】:2020-03-21 14:56:59
【问题描述】:
所以我有一个模型Part,其中包含ConnectedTo,即models.ForeignKey('self')。
这应该以与命名所暗示的方式相同的方式起作用。如果一个部件连接到另一个部件,它会被列出。当处理创建的第一个对象并将对象链接到尚未创建的部分时,我的问题就出现了。如果我有一个PartA,那么它什么都没有连接,因为还没有其他对象存在。尽管我知道它与尚不存在的B 相连。我可以创建B 并在创建时将其引用到另一部分,但这并不能改变A 中的ConnectedTo 值。
我可以很容易地编写一些东西来改变,无论何时添加一些东西,但这个系统被设计成相当大的规模,我觉得我需要一个更自动化的解决方案,以免它失控。
【问题讨论】:
-
我不确定你为什么需要信号。为什么不只是
B.objects.create(..., connectedTo=A)? -
@PedramParsian 这可能有用...我认为保存后可能会有所帮助。我会试一试,让你知道
-
@DanielRoseman 因为这只会为 B 更改它。在那种情况下,'A.ConnectedTo' 仍然为空
-
@DanielRoseman 抱歉,这可能是问题所在!我对数据库设计相当缺乏经验。我认为这可能是多对多?我没有对可以将多少个零件附加到哪个零件上设置任何限制。但问题是当我说 A 部分连接到 B 部分时,逻辑上 B 部分也连接到 A 部分。
-
@DanielRoseman 完美!谢谢你。这对我有用!我遇到的唯一问题是它现在不再显示为我的数据库表中的列。这是为什么呢?
标签: django database django-models database-design