datepicker - Odoo - ValueError:时间数据 '19/05/2022' 与格式 '%Y-%m-%d' 不匹配
问题描述
我正在尝试将自定义日期输入字段添加到电子商务网站的额外信息部分。我有以下新模块的代码(我使用表单生成器从日期字段复制的视图中的代码)。它不断给我错误:
ValueError:时间数据 '19/05/2022' 与格式 '%Y-%m-%d' 不匹配
当我提交额外信息页面时。如果我从输入字段中删除日期选择器并以 %Y-%m-%d 格式手动输入(例如 2021-02-19)它可以工作......我怎样才能让日期选择器和输入字段工作.. ..由于浏览器兼容性问题,我不想使用 type='date'。
模型
# -*- coding: utf-8 -*-
from odoo import models, fields, api
# Override the Customer Model to include Area Field
class WebsiteSaleOrderExtraInfo(models.Model):
_name = 'sale.order'
_inherit = ['sale.order']
x_website_delivery_date = fields.Date(string='Delivery Date', required=True)
意见
<odoo>
<data>
<!-- Override for Website Sale Addrees View -->
<template id="extra_info_custom" name="Checkout Extra Info with Delivery Date" inherit_id="website_sale.extra_info">
<xpath expr="//div[contains(@class,'s_website_form_submit')]" position="before">
<!-- Adding in Delivery Date at bottom of Form -->
<div class="form-group s_website_form_field col-12 s_website_form_custom" data-type="date" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label " style="width: 200px" for="x_website_delivery_date">
<span class="s_website_form_label_content">Delivery Date</span>
</label>
<div class="col-sm">
<div class="s_website_form_date input-group date" id="datepicker_x_website_delivery_date" data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input s_website_form_input"
data-target="#datepicker_x_website_delivery_date"
name="x_website_delivery_date"
placeholder=""
id="x_website_delivery_date"
required="1"
/>
<div class="input-group-append" data-target="#datepicker_x_website_delivery_date" data-toggle="datetimepicker" options="{'datepicker':{'minDate': 0}}">
<div class="input-group-text">
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<!-- Allow x_website_delivery_date to be whitelisted in web forms -->
<function model="ir.model.fields" name="formbuilder_whitelist">
<value>sale.order</value>
<value eval="[
'x_website_delivery_date'
]"/>
</function>
</data>
</odoo>
跟进调试:
Extra Info Next 按钮调用 website_sale 中的 /website_form/shop.sale.order 路由。它在以下位置失败: order.write(data['record']) 行 where data['record'] = {'x_website_delivery_date': '20/04/2021'}
解决方案
我终于找到了一个“解决方法”,但仍然希望有人能告诉我一个更简单的方法。我很想看到一个作为基础 odoo 安装一部分的解决方案。
https://www.odoo.com/forum/help-1/valueerror-time-data-19-05-2022-does-not-match-format-ymd-186354
推荐阅读
- webrtc - 什么时候端点包感知,什么时候不感知?
- javascript - 地图上的 Angular *ngFor 运行多次,但应该只运行一次
- python - 在 Pandas 的列中删除具有空值的索引
- javascript - puppeteer 获取行数
- reactjs - 在reactjs中获取antd卡值onclick
- r - 从一列复制(日期)数据的一部分并粘贴到 Tidyverse 中的单独列中
- python - Plotly:导出为 HTML 后的空白等值线图
- java - 我如何理解这种 Java 语法,方法名前括号中的类名?
- python - 为什么此 Python 代码在执行后显示“TypeError:'int' object is not iterable”而没有任何问题?
- mysql - 条件选择语句中的自动增量临时列