我有两个节点A
和B
。它们具有从A
到B
的有向关系。
因此,A
的{{1}}归因于ConnectedTo
类型。但是,我希望迭代所有RelatedTo
个节点,并从B
访问传入的关系。
我该怎么做?
我尝试将A
类型的ConnectedTo
属性添加到RelatedFrom
,但在查询图表时,我得到B
。
ValueError('Invalid Identifier')
导致错误:
class A(GraphObject):
__primarykey__ = "hash"
hash = Property()
ConnectedTo = RelatedTo('B')
def __init__(self, hash):
self.hash = hash
class B(GraphObject):
__primarykey__ = "hash"
hash = Property()
ConnectedTo = RelatedFrom('A')
def __init__(self, hash):
self.hash = hash
>>> a = A("testA")
>>> b = B("testB")
>>> a.ConnectedTo.add(b)
>>> graph.push(a)
>>> graph.push(b)
>>> test = B.select(graph).first()
答案 0 :(得分:1)
解决方案比预期的要容易:
class TestA(GraphObject):
__primarykey__ = "hash"
hash = Property()
CONNECTEDTO = RelatedTo('TestB')
def __init__(self, hash):
self.hash = hash
class TestB(GraphObject):
__primarykey__ = "hash"
hash = Property()
CONNECTEDTO = RelatedFrom('TestA', "CONNECTEDTO")
def __init__(self, hash):
self.hash = hash
>>> a = A("testA")
>>> b = B("testB")
>>> a.ConnectedTo.add(b)
>>> graph.push(a)
>>> graph.push(b)
>>> test = B.select(graph).first()
>>> list(test.CONNECTEDTO)
[ TestA ]
重要的部分是RelatedFrom('TestA','CONNECTEDTO')
。您必须指定调用传入连接的内容。