Я пытаюсь получить объект из моего Neo4j базы данных с помощью neo4django`objects.get (...)` не работает, как ожидалось
>>> # There is a single Person object in the database, so I get a value
>>> slug=Person.objects.get().name_slug
>>> print(slug)
doe-john
>>> # ok, it's there
>>> p=Person.objects.get(name_slug=slug)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/[...]/src/neo4django/neo4django/db/models/manager.py", line 37, in get
return self.get_query_set().get(*args, **kwargs)
File "/[...]/lib/python2.7/site-packages/django/db/models/query.py", line 366, in get
% self.model._meta.object_name)
DoesNotExist: Person matching query does not exist.
>>> p=Person.objects.get(name_slug__exact=slug)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/[...]/src/neo4django/neo4django/db/models/manager.py", line 37, in get
return self.get_query_set().get(*args, **kwargs)
File "/[...]/lib/python2.7/site-packages/django/db/models/query.py", line 366, in get
% self.model._meta.object_name)
DoesNotExist: Person matching query does not exist.
Сообщение об ошибке не имеет смысла. Я только что получил запрошенную строку из самого поля, поэтому должен быть совпадением. Есть идеи? Или я наткнулся на ошибку?
Это действительно странно, так как он работает с другими свойствами, но не с name_slug
:
>>> Person.objects.get(surname='Doe')
<Person: Person object>
>>> Person.objects.get(given_name='John')
<Person: Person object>
>>> Person.objects.get(name_slug='john-doe')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/[...]/src/neo4django/neo4django/db/models/manager.py", line 37, in get
return self.get_query_set().get(*args, **kwargs)
File "/[...]/lib/python2.7/site-packages/django/db/models/query.py", line 366, in get
% self.model._meta.object_name)
DoesNotExist: Person matching query does not exist.
>>> print(p.surname, p.given_name, p.name_slug)
(u'Doe', u'John', u'john-doe')
Моя модель определяется как таковую:
class Person(models.NodeModel):
surname = models.StringProperty(required=True, indexed=True)
given_name = models.StringProperty(required=True, indexed=True)
name_slug = models.StringProperty(indexed=True)
Таким образом, единственное отличие состоит в том, что это а не required
, но это не имеет значения, в моем понимании документации.
В журнале запросов? –
Или если не журнал запросов (я не уверен, есть ли у него Neo4j), использование django-debug-toolbar с панелью Neo4j REST может помочь. –
Это против мастера neo4django или версии на PyPi? –