我正在创建一个表单。我创建了一个移动模块,可以在移动设备上呈现,也可以创建一个在桌面上呈现的桌面模块。这个表单中有几个字段,除了日期字段外,它还可以正常工作,我希望有人在日期中输入。在移动块上,日期字段完全取值。在桌面块上,它没有任何值。我在渲染桌面版时最终收到此错误:
ValueError: time data '' does not match format '%Y-%m-%d'
HTML看起来像这样(为了简单起见,我已经删除了表单中的大部分字段,如果您需要查看更多HTML,请告诉我):
<form method="POST">
<div class="mobile-only">
<div class="form-group row">
<div class="col-12 col-md-2 col-lg-4">
<label for="start-date" class="col-form-label">
<h4>Start Date: <sup class="required">(required)</sup></h4>
</label>
</div>
<div class="col-12 col-md-10 col-lg-4">
<input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY">
</div>
</div>
<div class="row">
<div class="col-3 col-md-1">
<button class="green-button link-text" type="submit" id="submit" type="submit">Save</button>
</div>
<div class="col-3 col-md-1">
<button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button>
</div>
</div>
</div>
上面的代码在移动设备上工作正常,下面是在桌面上呈现的内容,并给出了上面引用的错误:
<div class="desktop-only">
<div class="form-group row">
<div class="col-lg-1">
<label for="start-date" class="col-form-label">
<h4>Start Date: <sup class="required">(required)</sup></h4>
</label>
</div>
<div class="col-lg-3">
<input type ="date" maxlength="10" class="form-control" id="start-date" name="start-date" placeholder="MM/DD/YYYY">
</div>
</div>
<div class="row">
<div class="col-3 col-md-1">
<button class="green-button link-text" type="submit" id="submit" type="submit">Save</button>
</div>
<div class="col-3 col-md-1">
<button class="green-button"><a href="{{ url_for('displayReminders') }}" class="link-text">Cancel</a></button>
</div>
</div>
</div>
</form>
另外,如果它是相关的,我使用的是Bootstrap 4,后端是带有Python的Flask应用程序。知道问题是什么吗?
占位符向用户显示以下格式:
placeholder="MM/DD/YYYY"
但是在你期望的代码中的其他地方:
format '%Y-%m-%d'
这是你的错误,如果你试图上传到数据库,你应该使用YYYY-MM-DD,因为这是国际标准,然后在你的前端转换为MM / DD / YYYY。如果您要求输入MM / DD / YYYY,则需要将其转换为YYYY-DD-MM