首页 > 解决方案 > Neomodel 密码查询缺少位置参数

问题描述

我试图.cypher在我的 Django 视图中查询我的 Employee 模型。我在其他地方使用过这个查询,所以我知道这部分有效。

query_string = "MATCH (n)-[r:REPORTS_TO|BRANCH_OF|OVERSEEN_BY]->() RETURN n, r"

query_results = Employee.cypher(
    self = Employee, 
    query = query_string, 
    params = None)

***   ERROR _pre_action_check() 
      missing 1 required positional argument: 'action'

此错误指向此处的第 204 行:

https://github.com/neo4j-contrib/neomodel/blob/master/neomodel/core.py


我试过了:

此外,如果我尝试通过在模型中定义密码调用然后在视图中调用它来遵循文档......我仍然会遇到同样的错误

https://neomodel.readthedocs.io/en/latest/cypher.html


更新: 这里的完整跟踪https://imgur.com/a/o3rQr

标签: pythoncypherneomodel

解决方案


您使用三个位置参数调用此方法的事实似乎是错误的。

方法签名是:

def cypher(self, query, params=None):

-self已由您的Employee.前缀提供。(错了,见下文)

-query应该作为位置query_string参数传入

-params=None只是传递默认值,这是无用的。

你试过Employee.cypher(query_string)吗?

根据 Tezra 所说,您需要一个 Employee 实例:

employee = Employee()

然后打电话employee.cypher(query_string)


推荐阅读