python - 在 Django Rest 中传递 URL 中的日期范围

标签 python json django python-3.x

我有一个 JSON 结构,例如,

[
    {

        "date": "2017-12-17 06:26:53",
        "name": "ab",

    },

    {

        "date": "2017-12-20 03:26:53",
        "name": "ab"

    },

   {

        "date": "2017-12-18 04:26:53",
        "name": "ab"

    },

    {

        "date": "2017-12-19 05:26:53",
        "name": "ab"

    }
]

我正在使用 Django Rest 框架。每当我向 localhost/namelist/{{name}}/ 发出 GET 请求时,都会返回 JSON,其中 "name": "ab"

现在,我想根据日期范围返回 JSON。我将在 url 中传递开始日期和结束日期,它应该返回该特定日期范围内的值,时间应该被忽略。此外,我们还必须考虑月份,而不仅仅是日期。在此示例中,月份是相同的,但在实际场景中月份可能会有所不同。例如,localhost/namelist/{{name}}/{{start_date}}/{{end_date}}/

如果 URL 是,localhost/namelist/abcd/2017-12-17/2017-12-19/ 那么它应该返回,

 [
        {

            "date": "2017-12-17 06:26:53",
            "name": "ab",

        },

       {

            "date": "2017-12-18 04:26:53",
            "name": "ab"

        },

        {

            "date": "2017-12-19 05:26:53",
            "name": "ab"

        }
    ]

views.py :-

def get_queryset(self):

    param = self.kwargs.get('pk')
    param2 = self.kwargs.get('ak')
    return namelist.objects.filter(name=param, date = param2)

urls.py:-

urlpatterns = {

    url('^namelist/(?P<pk>[\w\-]+)/(?P<ak>[\w\-]+)/$', ListViewParam.as_view()),

}

我可以在 URL 中传递日期,但是传递日期范围的推荐方法是什么?

最佳答案

我要做的是将范围移至 startend 查询参数,而不是将它们保留为休息风格的 URL 格式。

这会将您的网址修改为

    url('^namelist/(?P<pk>[\w\-]+)/$', ListViewParam.as_view()),

以及您的看法

def queryset(self):
    name = self.kwargs.get('ak', None)
    start = self.query_params.get('start', None)
    end = self.query_params.get('end', None)
    return namelist.objects.filter(name = name, date__range(start, end))

利用 range字段查找

这需要您将 URL 移动到类似

localhost/namelist/abcd/?start=2017-12-17&end=2017-12-19

关于python - 在 Django Rest 中传递 URL 中的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979647/

相关文章:

javascript - 使用 getJSON 设置 "load more"和 JSON 结果?

javascript - knockout : Asynchronous call in model binding

Django 信号 request_finished 获取用户实例

python - 使用 OneToOneField 的 Django 对象组合

python - 如何在嵌套字典中搜索给定值

python - 使用 pandas 正则表达式验证数据帧 header

python - 在 Python Google App Engine 项目上使用 gae-session 进行 Nosegae 单元测试

javascript - JSON 与动态编码

python - 需要的建议 : learning material for Django

django - 有没有办法修改 Django FileField 使用的存储后端?