【问题标题】:Django Tastypie: Allow Random as an Order By OptionDjango Tastypie:允许随机作为按选项排序
【发布时间】:2014-01-08 22:27:13
【问题描述】:

根据this question,我知道如何在tastepie 资源的Meta 类中随机排序一个查询集,但是有没有办法让它成为available order_by option 而不是默认设置?看起来ordering 元设置中定义的任何内容也必须列在fields 设置中,并且?显然不是一个字段。没有那个我就明白了,

{"error": "No matching '?' field for ordering on."}

【问题讨论】:

    标签: django tastypie


    【解决方案1】:

    您可以覆盖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 值。

    【讨论】:

    • 谢谢。我知道必须有一种方法来覆盖排序,就像修改过滤一样,但我看过去了。
    猜你喜欢
    • 2021-11-30
    • 2012-06-10
    • 2012-06-02
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多