【问题标题】:How to search product.product model with date as condition in Odoo 11如何在Odoo 11中以日期为条件搜索product.product模型
【发布时间】:2018-01-10 07:02:03
【问题描述】:

我想通过product.product 模型中提供的search() 方法在O​​doo 11 中获得具有多个条件的产品列表。

这将获得一个列表(其中包含一个代码为12345 如果存在的产品)

product_object = self.env['product.product']
product = product_object.search([('default_code', '=', '12345')])

但我想过滤列表以仅当其更新日期与给定日期相比是过去时才获取产品。 (注意:updated_at 是我的product.product 模型的自定义字段之一,类型为str

这不会按预期工作:

product_object = self.env['product.product']
product = product_object.search(
            ['&', ('default_code', '=', '12345'), ('updated_at', '<', '2017-01-10 12:01:00')])

product 变量内部始终没有任何内容。

如何以日期为条件搜索 product.product 型号。我必须将我的字段类型从string 更改为datetime吗?

【问题讨论】:

  • 请阅读How to ask 并更新您的问题主题。
  • @buhtz:你的意思是我需要在主题中添加Odoo11?
  • 阅读链接。指定主题中的语言。
  • 只是认为应该为此目的而存在标签。谢谢。
  • 正确。但主题也是。帮助部分中有好主题和坏主题的示例。

标签: python-3.x odoo-11


【解决方案1】:
     **@odoo v11 : Search method with Datetime field.**
  • 将您的 updated_at 字段类型更改为日期时间

     updated_at = fields.Datetime('Updated Date', required=True)
    
     current_time = fields.Datetime.now()
     product_object = self.env['product.product']
     product = product_object.search([('default_code', '=', '12345'), ('updated_at', '<', current_time)])
    

【讨论】:

  • 并且不要忘记第二个参数也必须是日期时间对象或兼容的对象类型。 '2017-01-10 12:01:00' 不起作用,因为它是一个字符串,而 fields.Datetime.now() 起作用,因为它提供了一个日期时间对象
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 2016-03-04
  • 2022-08-02
  • 1970-01-01
  • 2010-09-26
相关资源
最近更新 更多