如何在JSONField类型的元数据中使用日期字段查询查询?

时间:2019-07-16 03:15:19

标签: python django python-3.x django-views

如何使用JSONField类型的元数据中的日期字段查询查询?

在我这一行的字段元数据中包含以下内容

[
        {
            "id": "57400265c48f4ae16ea6f719bb360",
            "method": {
                "id": "be32754f6c3643c49c308a4526646",
                "expiration_date": "2019-06-12T00:00:00+00:00",
                "accepted": false,
                "printed": false,
                "downloaded": false,
                "created_at": "2019-06-12T11:49:00+00:00",
                "updated_at": "2019-06-12T14:48:59+00:00"
            }]

我尝试使用范围查询来返回两个日期之间的数据值。

Transac.objects.filter(id=request.user.id, metadata__method__expiration_date__range=(datetime.date(2019, 7, 1), datetime.date(2019, 7, 30)) )

我也尝试过使用GTE

Transac.objects.filter(id=request.user.id, metadata__method__expiration_date__gte=datetime.date(2019, 6, 1) )

没有任何效果。错误随之而来。

TypeError: Object of type 'date' is not JSON serializable

如果有人可以提供帮助,我非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用django json编码器日期格式:

metadata__method__expiration_date__gte = "2019-06-12T11:49:00+00:00"