2024-05-17 00:13:12 发布
网友
我有一个带有日期字段的视图。用户不得选择今天之后的日期。如何在Odoo datepicker中禁用当前日期之后的所有天
日期选择器maxDate用于设置可选择的最大日期,该日期将在当前日期之后禁用
maxDate
我没有找到从XML动态传递当前日期的方法,因此我重写了fields_view_get以更改options属性,并将maxDate设置为当前日期
fields_view_get
options
以下示例将maxDate选项设置为date_invoice:
date_invoice
class AccountInvoice(models.Model): _inherit = 'account.invoice' @api.model def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): res = super(AccountInvoice, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) if view_type == 'form': doc = etree.XML(res['arch']) for node in doc.xpath("//field[@name='date_invoice']"): node.set('options', "{'datepicker': {'maxDate': '%sT23:59:59'}}" % fields.Date.today().strftime(DEFAULT_SERVER_DATE_FORMAT)) res['arch'] = etree.tostring(doc) return res
编辑:
您可以在XPATH表达式中使用or来指定第二个字段名
or
doc.xpath("//field[@name='date_invoice' or @name='date_due']")
尝试在23:59:59指定一个时间
23:59:59
node.set('options', "{'datepicker': {'maxDate': '%sT23:59:59'}}" % fields.Date.today().strftime(DEFAULT_SERVER_DATE_FORMAT))
日期选择器
maxDate
用于设置可选择的最大日期,该日期将在当前日期之后禁用我没有找到从XML动态传递当前日期的方法,因此我重写了
fields_view_get
以更改options
属性,并将maxDate
设置为当前日期以下示例将maxDate选项设置为
date_invoice
:编辑:
您可以在XPATH表达式中使用
or
来指定第二个字段名编辑:
尝试在
23:59:59
指定一个时间相关问题 更多 >
编程相关推荐