Django更改日期格式从YYYY-MM-DD HH:MM到MM / DD / YYYY

时间:2017-12-11 03:20:31

标签: python django date date-format

我正在尝试将输入从模板传递到我的视图中的查询,但如果日期没有以Django的默认日期格式YYYY-MM-DD传递,那么它会抛出错误。

[u“'11 / 11/2012'值的格式无效。必须是YYYY-MM-DD HH:MM [:ss [.uuuuuu]] [TZ]格式。”] < /强>

template.html

<form method="GET" action="/BusComm/interactions">
    <div style="width: 100px; float:left">
        <p>To Date:</p>
    </div> 
    <div style="width: 200px; float:left">
        <input type="date" Placeholder="mm-dd-yyyy" name="date_to" id="id_q" value="{{ query }}" float="right">
    </div>
    <input type="submit" value="Submit" />
</form>

View.py

 def interactions(request):
    today = datetime.now().date()
    table = interactionsTable(Interactions.objects.all())

    if request.GET.get('date_from'):
            date_from = request.GET.get('date_from')

            table = interactionsTable(Interactions.objects.filter(date__range=[date_from, today]))
            return render(request, 'BusComm/interactions.html',{
            'table': table,
        })

interactTable(Interactions.object.filter())行是引发错误的行。

我的问题是如何更改Django中的日期格式以接受MM / DD / YYYY而不是YYYY-DD-MM?

1 个答案:

答案 0 :(得分:1)

>>> from datetime import datetime
>>> d = datetime.strptime('11/11/2012', '%m/%d/%Y')
>>> d.strftime('%Y/%m/%d')
'2012/11/11'

YYYY-DD-MM中将日期时间格式转换为views.py比强制Django在过滤器中接受MM/DD/YYYY更容易。