大家好!
我是Django(和Tastypie)的新手,我在分层数据方面遇到了一些问题。在我的项目中,我们有几个类别,由以下模型表示:
class Category(MPPTModel):
desc = models.CharField(max_length=200)
parent = TreeForeignKey('self', null=True, related_name='children')
至于服务器响应,我想要类似的东西(包含所有类别及其各自子类别的json,等等):
[
{
"id" : 0,
"decription" : "category1",
"categories" : [
{
"id" : 1,
"description" : "category2",
"categories" : [ ... ]
},
...
]
},
...
]
ResourceModel:
class CategoryResource(ModelResource):
resource_name = 'listCategories'
queryset = Category.objects.filter.all()
def alter_list_data_to_serialize(self, request, data):
return { 'status' : 'success', 'categories' : data }
我尝试过对Paginator进行子类化,但我注意到我只允许在'objects'列表中发送纯数据。有没有办法修改这种行为?我在这里监督什么吗?
感谢您的时间。
答案 0 :(得分:1)
与silvio在回复中提到的相似,我发现提供自我关系的正确方法是使用ToOneField:
class Category(MPTTModel):
descr = models.CharField(max_length=200)
parent = TreeForeignField('self', null=True, related_name='children')
class CategoryResource(ModelResource):
category = fields.ToOneField('self', 'parent', full=True, null=True)
# Rest of your Resource class
我希望这个答案对其他人有用!