在neo4django中,是否有任何方法更新节点?

在neo4django中,是否有任何方法更新节点?,django,neo4j,neo4django,Django,Neo4j,Neo4django,我现在正试图用Django+neo4django构建我的第一个Neo4j应用程序。 我觉得图书馆很酷,但现在有几个严重的问题。 (我知道,他们现在还在开发中。) 是否有方法更新现有节点(或修改属性值) neo4django-用户文档-neo4django 0.1.7-dev文档当然-与Django ORM相同 如果您有一个模型,Person,如下所示 class Person(models.NodeModel): name = models.StringProperty() pete

我现在正试图用Django+neo4django构建我的第一个Neo4j应用程序。 我觉得图书馆很酷,但现在有几个严重的问题。 (我知道,他们现在还在开发中。) 是否有方法更新现有节点(或修改属性值)


neo4django-用户文档-neo4django 0.1.7-dev文档

当然-与Django ORM相同

如果您有一个模型,
Person
,如下所示

class Person(models.NodeModel):
    name = models.StringProperty()

pete = Person.objects.create(name='Pete')
您只需更新模型实例属性,然后保存

pete.name = 'Peter'
pete.save()
您认为更多到Django文档的链接,或者一个示例项目,会使文档中的内容更加清晰吗?或者在“编写模型”部分中提供更多关于属性的信息

编辑-来自评论中的新信息

您正在引用的错误(
ValueError:replicate index entries for.prop
)是因为您试图使用已使用的值保存标记为“unique”的模型属性。
unique=True
选项确保首先检查类型索引,如果该值已被使用,则抛出错误。这是预期的行为

考虑

class UniquePerson(models.NodeModel):
     name = models.StringProperty(indexed=True, unique=True)

>>> pete = Person.objects.create(name='Pete')
>>> peter = Person.objects.create(name='Pete')
...
ValueError: Duplicate index entries for <UniquePerson>.name
>>> pete.name = 'other pete'
>>> pete.save()
>>> peter = Person.objects.create(name='Pete')
>>> #no problem, since the original pete node now has a different name
class UniquePerson(models.NodeModel):
name=models.StringProperty(index=True,unique=True)
>>>pete=Person.objects.create(name='pete')
>>>peter=Person.objects.create(name='Pete')
...
ValueError:.name的索引项重复
>>>pete.name='其他pete'
>>>皮特,救命
>>>peter=Person.objects.create(name='Pete')
>>>#没问题,因为原来的pete节点现在有了不同的名称
如果您不希望出现这种行为,当然可以关闭
unique=True
,捕获错误,或者检查具有该属性的对象是否已经存在,例如
pete=Person.objects.get(name='pete')

编辑-4/3/13-发现了一个导致错误的错误

几天前,我在neo4django中发现了一个bug,它可能导致了你看到的东西。它使具有
unique=True
属性的节点在保存到数据库后不被保存,并使其无法使用这样的属性更新节点

我打开了一个问题,确保测试套件捕捉到它,并提供了一个补丁-希望能解决您的问题


要从GitHub获取最新的源代码,可以使用
pip安装-e git+https://github.com/scholrly/neo4django#egg=neo4django-开发人员
。如果可以解决问题,请告诉我。

谢谢您的回答。当然,我一开始试过“写模型”部分,效果很好。但是,如果属性具有“unique=True”选项,则save方法无法正常工作。(引发了“重复索引项”。)请告诉我rihgt方法。@HidekiKinjyo如果您可以用这些详细信息更新您的问题,那将非常有帮助!事实上,一段代码片段说明你的问题也会有帮助。@HidekiKinjyo这解决了你的问题吗?如果是的话,你能接受这个答案吗?如果没有-你还遇到了什么问题?@HidekiKinjyo我想我找到了(并消除了)导致你问题的bug-请告诉我!