如何按 Python 中的关系过滤 NeoModel 节点
How to filter NeoModel Nodes by Relationships in Python
我有 2 个 StructuredNodes User
和 Token
作为一对一的关系。
来自将 Django 用于关系数据库,如果我想让用户获得令牌,我只需执行 User.objects.get(token__key=token)
.
但是将 Neo4j 与 NeoModel 一起使用时,我正在努力寻找一种方法来执行这个简单的查询。我必须为此使用密码吗?如果是的话怎么办?
此外,当我有 User
实例时,我可以执行 user.token.single()
来获取 Token
实例,但反之则不起作用。 token.user.single()
returns CardinalityViolation: Expected: one relationship in a outgoing direction of type FOR_USER on node (49) of class 'Token', got: none.
和 token.user returns 一个 neomodel.cardinality.One
对象。
class User(DjangoNode):
uid = UniqueIdProperty()
firstname = StringProperty(index=True, required=True)
lastname = StringProperty(index=True, required=True)
email = EmailProperty(unique_index=True, required=True)
password = StringProperty(requried=True)
token = RelationshipFrom('Token', 'OWNS_TOKEN', cardinality=One)
def post_create(self):
token = Token().save()
self.token.connect(token)
class Token(DjangoNode):
user = RelationshipTo('Token', 'FOR_USER', cardinality=One)
key = StringProperty(unique_index=True, default=generate_key)
created = DateTimeProperty(default_now=True)
答案可能有点晚了,但是,
这里是在黑暗中拍摄的,但是您的 Token class 中的 RelationshipTo 指向另一个 Token,而不是特定用户。
我有 2 个 StructuredNodes User
和 Token
作为一对一的关系。
来自将 Django 用于关系数据库,如果我想让用户获得令牌,我只需执行 User.objects.get(token__key=token)
.
但是将 Neo4j 与 NeoModel 一起使用时,我正在努力寻找一种方法来执行这个简单的查询。我必须为此使用密码吗?如果是的话怎么办?
此外,当我有 User
实例时,我可以执行 user.token.single()
来获取 Token
实例,但反之则不起作用。 token.user.single()
returns CardinalityViolation: Expected: one relationship in a outgoing direction of type FOR_USER on node (49) of class 'Token', got: none.
和 token.user returns 一个 neomodel.cardinality.One
对象。
class User(DjangoNode):
uid = UniqueIdProperty()
firstname = StringProperty(index=True, required=True)
lastname = StringProperty(index=True, required=True)
email = EmailProperty(unique_index=True, required=True)
password = StringProperty(requried=True)
token = RelationshipFrom('Token', 'OWNS_TOKEN', cardinality=One)
def post_create(self):
token = Token().save()
self.token.connect(token)
class Token(DjangoNode):
user = RelationshipTo('Token', 'FOR_USER', cardinality=One)
key = StringProperty(unique_index=True, default=generate_key)
created = DateTimeProperty(default_now=True)
答案可能有点晚了,但是,
这里是在黑暗中拍摄的,但是您的 Token class 中的 RelationshipTo 指向另一个 Token,而不是特定用户。