2013-08-25 84 views
1

我在同一模型中有父母/子女關係。 例子:Django Tastypie嵌套父母/子女

  • 父評論
    • 兒童評論01
      • 兒童評論02

我想建立一個將所有的子線程的API在嵌套的fasion。 目前它只是提出了家長的意見。

我現在API.py看起來是這樣的:

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

首先,你需要定義一個過濾功能,可將返回的查詢集的父母 評論。讓我們把它叫做filter_comments_per_bundle:

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

下,只需添加一個參考意見模型資源自我:

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

最後,抱歉,但它是一個忌諱。 s /評論/評論/模型應該是單數,首字母大寫。

哦,還有一件事。不要將Models和ModelResources命名爲相同的名稱。重命名評論ModelResource。