Django,我怎样才能将默认值设置为今天的输入日期(不使用表格)?

时间:2017-07-10 07:05:31

标签: html django

我正在使用django制作网站。 提交传递值后,我成功保留输入日期值。 但我不知道如何在提交后保留所选值。 (我没有使用表格)

另外,我想知道如何将输入type="date"今天的默认值设置为今天!

这是我的页面。我希望在提交后保持所选值(提交后,页面再次返回此页面)

my page

sales.management.html

<form id="sales_search" action="{% url 'management:sales_search' %}" method="GET">
    <select title="team_choice" name="team_choice" class="select" id="team_choice">
        <option name='FC' value="FC" {% if team =='FC' %} selected {% endif %}>FC</option>
        <option name='Fitness' value="Fitness" {% if team =='Fitness' %} selected {% endif %}>fitness</option>
        <option name='Pilates' value="Pilates" {% if team =='Pilates' %} selected {% endif %}>pilates</option>
        <option name='All' value="All" {% if team =='All' %} selected {% endif %}>all</option>
    </select>
    <span>Start Day: <input type="date" class="startdate" name="startdate" value="{{ startdate }}" ></span>
    ~<span>End Day: <input type="date" class="enddate"  name="enddate"  value="{{ enddate }}" ></span>
    <button type="submit" class="btn btn-info" value="search" >search</button>
</form>

我在选择框中尝试了{% if team =='FC' %} selected {% endif %}

但是,它收到错误无法解析剩余的'=='FC''来自'=='FC''

views.py

def sales_search(request):
     team_choice = request.GET.get('team_choice','')
     startdate = request.GET.get('startdate','') 
     enddate = request.GET.get('enddate','') 
     #Todo ( it's a long)

     context = {
         .... ,
        'startdate' : startdate,
        'enddate' : enddate,
        'team':team_choice, }

    return render(request, 'management/sales_management.html', context)

如何在提交后保留所选值?如何将默认值设置为输入日期的今天?

任何帮助对我都非常有帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

在你的模型中你可以添加DateField(默认= date.today) 引用:https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.DateField

答案 1 :(得分:0)

您需要在模板中的=='FC'之间添加空格。

要在视图文件中将默认日期设置为今天,请添加

import datetime 

并在您的上下文中写道:

context = {
     .... ,
    'startdate' : startdate if startdate else datetime.date.today(),
    'enddate' : enddate if enddate else datetime.date.today(),
    .....
    }