2017-02-04 20 views
0

Я пытаюсь выполнить простой запрос графа в neo4j из python. Мой запрос выглядитValueError в запросе графа py2neo

def do_query(self): 
    graph = Graph(settings.NEO4J_CONNECTION_STRING) 

    query = 'MATCH (n:SomeNode) WHERE n.id = ' + id + ' RETURN n' 
    data = graph.cypher.execute(query) 

, но когда я запускаю его в обработчик Django REST, я получаю следующее сообщение об ошибке

Traceback (most recent call last): 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response 
response = self.process_exception_by_middleware(e, request) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response 
response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view 
return view_func(*args, **kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view 
return self.dispatch(request, *args, **kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/rest_framework/views.py", line 466, in dispatch 
response = self.handle_exception(exc) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/rest_framework/views.py", line 463, in dispatch 
response = handler(request, *args, **kwargs) 
File "/Users/me/Development/app/search/api/views.py", line 351, in get 
results = graph_queries.do_query(user_id) 
File "/Users/me/Development/app/app/graph_queries.py", line 43, in do_query 
data = graph.cypher.execute(query) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/core.py", line 661, in cypher 
metadata = self.resource.metadata 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/core.py", line 213, in metadata 
self.get() 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/core.py", line 258, in get 
response = self.__base.get(headers=headers, redirect_limit=redirect_limit, **kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/packages/httpstream/http.py", line 966, in get 
return self.__get_or_head("GET", if_modified_since, headers, redirect_limit, **kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/packages/httpstream/http.py", line 943, in __get_or_head 
return rq.submit(redirect_limit=redirect_limit, **kwargs) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/packages/httpstream/http.py", line 433, in submit 
http, rs = submit(self.method, uri, self.body, self.headers) 
File "/Users/me/.virtualenvs/app/lib/python2.7/site-packages/py2neo/packages/httpstream/http.py", line 302, in submit 
raise ValueError("Unsupported URI scheme " + repr(uri.scheme)) 
ValueError: Unsupported URI scheme None 

Я не совсем уверен, с чего начать. Я довольно уверен, что соединение с Neo4J хорошо, и обработчик запускается правильно, как показано в трассировке. Что-то не так с моим запросом?

+0

Запрос выглядит нормально. Можете ли вы отлаживать 'settings.NEO4J_CONNECTION_STRING' с' print', например, для того, чтобы узнать, что этот параметр доступен внутри функции –

+0

Хммм, его пустой ... Я знаю, что он установлен в моем файле development.py, который имеет локальные переопределения для settings.py (я думаю) –

+0

Тогда вы знаете, где искать ;-) –

ответ

0

Оказывается, проблема заключалась в использовании import settings, а не from django.conf import settings, что означало, что я не читал правильную настройку.