gpt4 book ai didi

Django 无向图

转载 作者:行者123 更新时间:2023-12-04 19:23:23 27 4
gpt4 key购买 nike

我想在 Django 中构建一个无向图。我已经建立了一个带有两个外键(第一个,第二个)到节点类的边缘模型,但是与related_name 存在冲突。我可以使用 first_set 和 second_set,但由于该图是无向图,因此它是否被喜欢或来自谁都没有关系。处理这种情况的推荐方法是什么?

编辑:以下是我正在使用的大致模型:

class Node(models.Model):
#some irrelevant stuff

class Edge(models.Model):
#some other stuff
first = models.ForeignKey('Node',related_name=None)
second = models.ForeignKey('Node',related_name=None)

我想要的是 some_node.connected_nodes_set是相关管理器的效果,类似于如果我使用了 related_names,将为 first_set 或 second_set 设置的内容,除了它将具有可以通过单个边到达的所有节点,而不仅仅是那些可以在一个方向到达。

最佳答案

我必须对我当前的项目做类似的事情。我的解决方案是拥有一个 ManyToManyField在我相当于你的 Node模型。像这样的东西:

class Node(models.Model):
adjacent = models.ManyToManyField("self", null=True, blank=True)

请注意 "self"以上是必须允许 ManyToManyField指向自己。

使用此代码,与给定节点相邻的所有节点 N可以使用 N.adjacent.all() 找到.

关于Django 无向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2008310/

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