如何将多个日期(即(10/12/2016),日期即(23/12/2016)传递给Django的URL



我正在尝试通过statter_date,即(10/12/2016),report_to_date I.E(23/12/2016)

starting_date = '31/12/2015'
report_to_date = '31/12/2016'  
<a class ="btn btn-success" href="/downloadpdf/"+starting_date+"/"+report_to_date+"/">Download</a>

在URL下方不起作用 -

url(r'^/downloadpdf/(?P<starting_date>[A-Za-z0-9+/=]+)/(?P<report_to_date>[A-Za-z0-9+/=]+)/$', views.report, name='report'),

我需要日期,即31/12/2015',以及我的视图功能:

def report(request,starting_date,report_to_date):
        starting_date = parse('starting_date')
        report_to_date = parse('report_to_date')

这不起作用。请帮助我..预先感谢。

@felk在评论中说,您需要将日期格式更改为dd-mm-yyyy,以避免可读性问题。

为此,您需要更改URLPATTERN以接受-和数字:

url(r'^downloadpdf/(?P<starting_date>[0-9-]+)/(?P<report_to_date>[0-9-]+)$', views.report, name='report')

现在您可以在此类似的模板内使用此模式:

<a href="{% url 'report' starting_date='17-12-2016' report_to_date='17-12-2016' %}">date</a>

要在视图中解析日期值您可以使用strptime函数:

import datetime
...
def report(request, starting_date, report_to_date):
    starting_date = datetime.datetime.strptime(starting_date, '%d-%m-%Y').date()
    report_to_date = datetime.datetime.strptime(report_to_date, '%d-%m-%Y').date()

最新更新