如何通过单击按钮按日期填充字段

时间:2017-10-29 16:28:46

标签: openerp odoo-8 odoo-9 odoo-10 odoo-view

我想通过点击动作按钮

按日期填写字段
class sale_inheritd(models.Model):
_inherit = 'sale.order'
@api.multi
def action_sale_temporary(self):
    for order in self:
        self.env['project.project'].search([('project_id', '=', 'related_project_id')]).write({'temporary_reception_date':datetime.date.today()})
        order.write({'state': 'temporary'})

这个功能有什么问题?

2 个答案:

答案 0 :(得分:2)

我不了解您传递给搜索方法的域名,但是如果您想要填写类型为Date的字段:

   .write({'temporary_reception_date':fields.Date.today()})

和日期时间字段:

   .write({'temporary_reception_date':fields.Datetime.now()})

注意:并且不要使用self来访问循环exm中的字段:self.related_project_id使用order.related_project_id代替,或者您很可能会有Singleton错误

编辑:正如@CZoellner所说的fields.Date.context_today(self)更好,因为这可以防止用户时区出现问题

答案 1 :(得分:1)

从你的问题来看,目前尚不清楚你想要完成什么。 您搜索project_id[looks like many2one field]的搜索方法等于字符串。

如果它是many2one字段,则传递id以获得正确的结果。 另外,请确保self.env['project.project'].search([('project_id', '=', 'related_project_id')])仅返回单个记录,否则会导致单例错误。

如果搜索方法只返回一条记录,那么写入记录就没有问题了。