문제
엔터티 클래스와 함께 Django 모델 (일정)이 있습니다. Activity
, 그것은 부모입니다 Event
.
class Entity(models.Model):
<...>
class Activity(models.Model):
<...>
team_entity = models.ForeignKey(Entity)
<...>
class Event(models.Model):
<...>
activity = models.ForeignKey(Activity)
<...>
JSON 파일의 일환으로 어린이 대상과 웅장한 어린이를 직렬화하고 얻는 방법은 무엇입니까?
해결책 2
나는 이제 django-piston을 사용합니다. 이것은 트릭을합니다.
다른 팁
직렬화를하기 전에, 물체를 검색 할 때, 관계를 유지하기 위해 Select_related ()를 사용하여 자녀, 손자 등을 얻습니다.
보다 http://docs.djangoproject.com/en/dev/ref/models/querysets/
포스터가 요청한 질문은 다음과 같은 결과로 끝나는 것 같습니다.
예를 들어,이 모델부터 시작합니다.
class Entity(models.Model):
name = models.CharField(...)
class Activity(models.Model):
name = models.CharField(...)
team_entity = models.ForeignKey(Entity)
class Event(models.Model):
name = models.CharField(...)
activity = models.ForeignKey(Activity)
JSON의 결과 :
{
"model": "Entity",
"name": "Dallas Cowboys",
"activities": [
{
"model": "Activity",
"name": "Practice"
},
{
"model": "Activity",
"name": "Game"
"events": [
{
"model": "Event",
"name": "vs Washington Redskins"
},
{
"model": "Event",
"name": "vs Green Bay Packers"
}
]
}
]
}
따라서 부모-자녀-손자를 유지합니다 (내재가 아니라 일대일 관계가 가로). 이것이 초기 포스터의 의도가 아니라면 사과합니다. 그러나 그렇다면 이에 대한 답을 원합니다.
이용 가능한 Django 문서의 Serializing 상속 모델 및 객체를 살펴보십시오. http://docs.djangoproject.com/en/dev/topics/serialization/?from=olddocs#inherited-models
그것은 당신의 문제를 해결해야합니다.
나는 당신이 여기에서 당신의 답을 찾을 수 있다고 생각합니다. http://code.djangoproject.com/ticket/4656
이것은 어떤 단계에서 Django 시리얼 라이저의 일부가 될 것입니다. 지금은 표준 Django 시리얼 라이저를 이것으로 교체하고 멀리 작업 할 수 있어야합니다.
간단한 두 줄의 코드 로이 작업을 수행 할 수 있습니다.
from django.core import serializers
data = serializers.serialize("json", SomeModel.objects.all())