我是Graph数据库的新手,在Django application
中使用Neo4j数据库和neomodel
库。
设置定义为
NEOMODEL_NEO4J_BOLT_URL = os.environ.get('NEO4J_BOLT_URL')
NEOMODEL_SIGNALS = True
NEOMODEL_FORCE_TIMEZONE = False
NEOMODEL_ENCRYPTED_CONNECTION = True
NEOMODEL_MAX_POOL_SIZE = 50
字符串models.py
文件具有以下模型
class Person(StructuredNode):
SEXES = {
'm': 'Male',
'f': 'Female',
}
id = properties.UniqueIdProperty()
first_name = properties.StringProperty(unique_index=True, required=True, max_length=100)
gender = properties.StringProperty(choices=SEXES, required=True)
型
在Django shell python manage.py shell
中,创建一个节点作为
>>> from family_tree.models import Person
>>> person = Person(first_name='Anuj', gender='m')
>>> person.save()
<Person: {'id': '572d0b8ff3a8402ba58c4a03cace78ba', 'first_name': 'Anuj', 'middle_name': None, 'last_name': None, 'gender': 'm', 'date_of_birth': None, 'date_of_death': None, 'created': datetime.datetime(2023, 6, 24, 7, 44, 26, 223871, tzinfo=<UTC>)}>
型
但数据库资源管理器中没有节点。
的数据
此外,刷新节点会导致DoesNotExist
异常
>>> person.refresh()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python3.9/site-packages/neomodel/core.py", line 616, in refresh
raise self.__class__.DoesNotExist("Can't refresh non existent node")
neomodel.core.PersonDoesNotExist: (PersonDoesNotExist(...), "Can't refresh non existent node")
型
1条答案
按热度按时间hec6srdp1#
问题是在Person类中设置
id
。这是一个由neomodel内部设置的特殊字段。根据https://neomodel.readthedocs.io/en/latest/properties.html
如果您将代码更改为使用
uid
(或任何其他字段名称)而不是id
,则可以正常工作。