2016-09-10 1 views
1

을 상속 이 경우 SuperClass 인스턴스로 이동하십시오. 내가 뭘 놓치고 있니? superclass_ptrClass (SuperClass을 가리킴)에 존재하지 않는 이유는 인스턴스를 직렬화 할 수 있습니까?장고 dumpdata은 내가 <code>./manage.py dumpdata --natural-foreign --natural-primary</code>에 내 수업을 시도하고 객체

문제 : 내 수퍼 클래스에 하나 이상의 서브 클래스가 있고 각 서브 클래스에 여러 인스턴스가 있습니다. 따라서이 관계가 필요하므로 필자의 비품을 이해할 수있다.

답변

2

이 실제로 버그 및 패치는 공사중입니다 :

다음은 예입니다 https://github.com/django/django/pull/7231. 따라서 패치를 기다리는 것을 제외하고는이 질문에 대해서는 아무런 대답이 없습니다.

0

수퍼 클래스 및 모든 하위 클래스의 데이터를 덤프해야하며, 모든 것을 다시로드하려면 먼저 수퍼 클래스를로드 한 다음 하위 클래스를로드해야합니다.

Django는 자동으로 상속 링크를 수행하므로 걱정할 필요가 없습니다 (수퍼 클래스와 하위 클래스 모두 동일한 pk을 공유합니다).

# To export the data 
$ python manage.py dumpdata app.Superclass > superclass.json 
$ python manage.py dumpdata app.SubclassA app.SubclassB > subclasses.json 


# To import the data 
$ python manage.py loaddata superclass.json 
$ python manage.py loaddata subclasses.json 
+0

자연 기본 키를 사용할 때 장고는 기본 키를 출력하지 않습니다. 또한 이것은 실제로 버그이며 Django의 GitHub에서 pull 요청을 수정하기위한 패치가 있습니다. – jpmelos

+0

흥미 롭다면, 나는이 주제와 관련하여 최근에 비슷한 의구심을 가지고 있었는데 이것이 도움이 될 것이라고 생각했지만 당신의 문제는 좀 더 복잡해 보입니다. 다행히도 해결 방법을 찾았습니다. – ihhcarus

+0

네,하지만 어쨌든 도움을 주셔서 감사합니다! – jpmelos

관련 문제