微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何按 Django 中 json 数组字段的最后一个元素进行过滤

如何解决如何按 Django 中 json 数组字段的最后一个元素进行过滤

我有一个模型 MyModel,带有一个名为 JSONFielddata。这个 json 字段包含一个对象数组,例如:

[
    {
        "date": "2021-01-01","amount": 120
    },{
        "date": "2021-01-02","amount": 150
    }
]

我想按数组最后一个元素的 amount 进行过滤。从 Django 文档中,我了解到我可以使用以下方法按第一个元素进行过滤:

MyModel.objects.filter(data__0__amount__gte=100)

我如何使用最后一个元素来做到这一点?

解决方法

过滤器总是返回一个对象列表,即使在这种情况下只有一个大于 100 的对象存储在同一实例的数据字段“data”中:

last = MyModel.objects.filter(amount__gte=last.data[-1]["amount"])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。