Per this question,我知道如何在tastypie资源的Meta类中随机排序查询集,但有没有办法让它成为available order_by
option而不是默认值?看起来ordering
Meta设置中定义的任何内容也必须列在fields
设置中,并且?显然不是一个领域。没有它,我只是得到,
{"error": "No matching '?' field for ordering on."}
答案 0 :(得分:2)
您可以覆盖Resource
上的apply_sorting
方法(documentation),可能是这样的(未经测试):
class YourResource(ModelResource):
def apply_sorting(self, obj_list, options=None):
if options and '?' in options.get('order_by', ''):
return obj_list.order_by('?')
return super(YourResource, self).apply_sorting(obj_list, options)
如果这不起作用,您可能需要复制代码from the ModelResource
implementation以获取正确的order_by
值。