如何通过 Python 中的关系过滤 NeoModel 节点

我有 2 个 StructuredNodesUser并且Token是一对一的关系。来自将 Django 用于关系数据库,如果我想给用户一个令牌,我只会做User.objects.get(token__key=token).


但是使用 Neo4j 和 NeoModel,我正在努力寻找一种方法来执行这个简单的查询。我必须为此使用密码吗?如果是这样怎么办?


此外,当我拥有User实例时,我可以user.token.single()获取Token实例,但反过来就行不通了。token.user.single()返回CardinalityViolation: Expected: one relationship in a outgoing direction of type FOR_USER on node (49) of class 'Token', got: none.和 token.user 返回一个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)


慕桂英546537
浏览 219回答 1
1回答

慕妹3146593

答案可能有点晚了,但是,此处暗中拍摄,但您的 Token 类中的 RelationshipTo 指向另一个 Token,而不是特定用户。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python