我发现关系属性在 neo4django 中还没有实现。 this thread 中公开的解决方法是为每个与属性的关系都有一个新的节点类型。
我负担不起太多的计算,所以我不想使用这种技术。在阅读 source code 时我已经看到,作为 Relationship 类的文档字符串,这个:"""Extend to add properties to relationships."""
我的问题是,该怎么做?从哪里开始添加至少一个属性?
谢谢
请您参考如下方法:
尽管有文档字符串,这仍然是一个 open issue - 实际上是该项目最古老的。您可能有一种方法可以通过扩展 Relationship 和 BoundRelationship 来实现它,但在我能够关闭该问题之前,这并不容易。
我认为这个问题可能不会成为使用该项目的瓶颈,因为您可以为 Neo4j 提供比关系存储更多的节点存储内存来解决它。当然是 YMMV。
不过,我知道这感觉像是一个 hack。如果您真的需要自定义关系属性,最短的路径可能是下降到 REST 客户端级别。要创建与属性的关系,您可以做类似的事情
class Person(NodeModel):
name = StringProperty()
friends = Relationship('self', rel_type='friends_with')
pete = Person.objects.create(name='Pete')
dave = Person.objects.create(name='Dave')
# from the neo4j-rest-client [docs][2]
pete.node.relationships.create("friends_with", dave.node, since=123456789, introduced_at="Christmas party")
WDYT?
