もちろん、Django ORM の場合と同じ方法です。
モデルがある場合は、Person
このように
class Person(models.NodeModel):
name = models.StringProperty()
pete = Person.objects.create(name='Pete')
モデルインスタンスの属性を更新して保存するだけです
pete.name = 'Peter'
pete.save()
Django のドキュメントやサンプル プロジェクトへのリンクを追加すると、ドキュメントでこれがより明確になると思いますか? または、「モデルの記述」セクションでプロパティに関する詳細情報を入手できますか?
編集 - コメントの新しい情報から。
参照しているエラー ( ValueError: Duplicate index entries for <Model>.prop
) は、「一意」としてマークされたモデル プロパティを、既に使用されている値で保存しようとしているためです。この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
その動作が望ましくない場合は、もちろん、オフunique=True
に切り替えたり、エラーをキャッチしたり、そのプロパティを持つオブジェクトが のように既に存在するかどうかを確認したりできますpete = Person.objects.get(name='Pete')
。
編集 - 4/3/13 - 寄与するバグが見つかりました。
数日前、neo4django にバグが見つかりました。これが、あなたが見ているものにつながった可能性があります。プロパティを持つノードがunique=True
データベースに保存された後に保存されないようにし、そのようなプロパティを持つノードを更新することを不可能にしました。
問題を開き、テストスイートがそれをキャッチすることを確認し、パッチを提供しました - https://github.com/scholrly/neo4django/issues/150 -うまくいけば、あなたの問題が解決します!
GitHub から最新のソースを取得するには、pip install -e git+https://github.com/scholrly/neo4django#egg=neo4django-dev
. それが修正されるかどうか教えてください。