0

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

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

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

有没有可能我可以返回一组文章对象,而 Tastypie 可以将它们转换为正确的 JSON 格式。

4

1 回答 1

0

您需要的是扩展querysetin 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在元数据中定义属性,您还必须在其中添加新字段。

于 2012-09-05T13:12:40.973 回答