2013-03-23 5 views
1

이제 Django + neo4django로 첫 번째 Neo4j 앱을 만들려고합니다. 나는 도서관이 시원하다고 느끼지만, 지금은 몇 가지 심각한 문제가있다. (지금은 아직 개발중인 버전입니다.) 존재 노드를 업데이트하거나 속성 값을 수정하는 방법이 있습니까?neo4django에서 노드를 업데이트 할 수있는 방법이 있습니까?

neo4django - 사용자 설명서 - 0.1.7-dev에 문서 장고 ORM에 당신이하는 것과 같은 방식으로 코스 -의 https://neo4django.readthedocs.org/en/latest/index.html

답변

0

neo4django.

당신은 당신은 단순히 모델 인스턴스의 속성을 업데이트하고

pete.name = 'Peter' 
pete.save() 

당신이 장고 문서에 더 많은 링크를 생각하거나 마십시오 저장할 수있는이

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

pete = Person.objects.create(name='Pete') 

같은 모델, Person가있는 경우 어쩌면 예제 프로젝트를 통해 문서에서 더 명확하게 알 수 있을까요? 또는 "Writing Models"섹션의 속성에 대한 자세한 정보는 무엇입니까?

EDIT - 의견의 새로운 정보.

참조하는 오류 (ValueError: Duplicate index entries for <Model>.prop)는 "고유"로 표시된 모델 속성을 이미 사용 된 값으로 저장하려고하기 때문에 발생합니다. unique=True 옵션은 먼저 유형 색인을 확인하고 값이 이미 사용 된 경우 오류를 던집니다. 그것은 예상 된 행동입니다. 당신이 그 행동을하지 않으려면

은 물론, unique=True을 플립 오류를 잡아, 또는 해당 속성을 가진 개체가 이미 pete = Person.objects.get(name='Pete') 같은 존재하는지 여부를 확인할 수

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 

을 고려하십시오.

EDIT - 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을 사용할 수 있습니다. 그게 수정되면 알려줘.

+0

감사합니다. 물론 처음에는 "Writing Models"섹션에서 시도했지만 정상적으로 작동합니다. 그러나 속성에 'unique = True'옵션이있는 경우 save 메소드가 제대로 작동하지 않습니다 (중복 된 인덱스 항목 발생). rihgt 방법을 알려주십시오. –

+0

@HidekiKinjyo 그 세부 사항으로 질문을 업데이트 할 수 있다면 정말 도움이 될 것입니다! 실제로 문제를 나타내는 코드 스 니펫도 도움이 될 수 있습니다. –

+0

@HidekiKinjyo가이 문제를 해결 했습니까? 그렇다면 대답을 받아 들일 수 있습니까? 그렇지 않다면 어떤 추가 문제가 발생하고 있습니까? –

관련 문제