2013-08-25 3 views
1

동일한 모델의 상위/하위 관계가 있습니다. 예 :Django Tastypie 중첩 부모/자식

  • 학부모 의견
    • 아이 주석 01
      • 아이 주석 02

나는 아이의 모든 스레드를 제공하는 API를 구축하고 싶습니다 중첩 된 fasion에서. 현재 상위 주석이 표시됩니다.

class ThreadResource(ModelResource): 
    locations = fields.ToManyField('forum.api.comments','parent', full=True) 

class Meta: 
    queryset = comments.objects.all() 
    resource_name = 'Comments' 

class comments(ModelResource): 
    class Meta: 
     queryset = comments.objects.all() 
     resource_name = 'comms' 

전 모델에 있음을했던 방법 :

class comments(models.Model): 
    title = models.CharField(max_length=255) 
    parent = models.ForeignKey('self', blank=True,null=True) 
    sort = models.IntegerField(default=0) 
    content = models.CharField(max_length=255) 

답변

3

첫째, 당신이 검색어 세트를 반환하는 필터 함수를 정의 할 필요가

나의 현재 API.py은 다음과 같습니다 부모의 댓글.

children = fileds.ToManyField('self', filter_comments_per_bundle, full = True, null = True) 

마지막으로, 죄송하지만 애완 동물 초조의 :

def filter_comments_per_bundle(bundle); 
    parent = bundle.obj 
    return comments.objects.filter(parent=parent) 

다음, 그냥 코멘트 모델 자원에 자체에 대한 참조를 추가 : 현실을 filter_comments_per_bundle 부르 자. s/comments/Comment/Models는 첫 글자를 대문자로하여 단수 여야합니다.

아, 또 다른 것. 모델과 ModelResources를 같은 이름으로 지정하지 마십시오. 주석 이름을 ModelResource.