Tastypie:按外国排序?

时间:2014-01-30 01:07:00

标签: django tastypie

在Tastypie中,您可以使用order_by对API响应进行排序,如:

www.yourbaseurl.com/api/v1/model/?order_by=field_to_sort_by

你如何通过外国领域订购?

e.g。假设

Model Local (id, localfield, foreign)
Model Foreign (id, foreign_field)

我试过了:

www.yourbaseurl.com/api/v1/model/?order_by=foreign__foreign_field

2 个答案:

答案 0 :(得分:2)

您是否在订购列表中包含了外键(在Meta中)...!

class Meta:
    ordering = [<your foreign key field>]

但值得一提的是,它与过滤功能不同。我的意思是在过滤中你还需要在外键ModelResource 的过滤选项中指定特定的字段名称。但是在订购的情况下你不需要这样做,只需在订购中指定外键字段名称然后你就可以通过 foreignkeyfield__fieldname 来提及它的所有字段,它确实如此。无论外键ModelResource 在订购清单中是否有该字段。

答案 1 :(得分:-2)

您可以在资源中创建外键引用,如

class LocalResource(Local):
    foreign = fields.ForeignKey(LocalResource, full=True)

    class Meta:

然后在您的api电话中,您可以执行以下操作。

www.yourbaseurl.com/api/v1/model/?order_by=foreign__field=value