0

I'm trying to do a simple graph query in neo4j from python. My query looks like

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)

but when I run it in a Django REST handler, I get the following error

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

I'm not really sure where to begin. I'm pretty confident the connection to Neo4J is good, and the handler is being invoked correctly as shown in the traceback. Is there something wrong with my query?

Jonathan Viccary
  • 722
  • 1
  • 9
  • 27

1 Answers1

0

Turns out the problem was I was using import settings rather than from django.conf import settings, which meant I wasn't reading the correct setting.

Jonathan Viccary
  • 722
  • 1
  • 9
  • 27