Tastypie可以处理任意对象数组吗?

时间:2012-08-12 03:56:29

标签: django tastypie

我正在开发一个需要REST API的项目。我试过Piston,但它不符合我的要求,因为它目前每个型号只允许1个处理程序。

Tastypie似乎是一个更好的选择。但是,我遇到了以下问题。我的文章类是根据复杂的规则显示的,例如排名和创建的日期。为了提高服务器性能,我创建了一个虚拟表来记录所有文章的顺序,以便在用户请求时,不会执行复杂的排序过程。相反,服务器会从虚拟表中检查每篇文章的订单。

使用Tastypie,需要一个查询集。但是,因为我想使用虚拟表中记录的订单,所以我必须使用更复杂的代码片段来检索数据。

我是否有可能返回一个文章对象数组,而Tastypie可以将它们转换为适当的JSON格式。

1 个答案:

答案 0 :(得分:0)

您需要的是扩展queryset中的Meta。假设您的文章表应该按一些其他数据排序,您的查询集将被定义,例如:

Meta:
    queryset = Article.objects.extra(select={
       'ordering': 'SELECT foo FROM bar'
    },).order_by('ordering')

您必须在资源中定义其他字段:

ordering = field.IntegerField(attribute="ordering", default=0, readonly=True)

现在应返回附加字段,其中包含从查询集中检索到的所有其他字段。请注意,如果您在元数据库中定义fields属性,则还必须在其中添加新字段。