Odoo 12:如何在@ api.model方法中使用表单值

时间:2019-04-05 20:50:05

标签: javascript python odoo odoo-12

我是新来的论坛。
我目前正在使用Odoo 12,在与Java Widget进行Odoo Model通讯时遇到一些问题。一步一步...
1.我正在创建一个显示一些Google图表的窗口小部件,而我发现的唯一方法是在自定义视图中显示QWeb代码并将该窗口小部件分配给Char字段。
2.在开始时,我已经使用rpc实现了一种不错的方法:使用rpc并从模块中获取数据。
3.问题:
我需要在表单中显示两个日期字段,并使用该日期作为我的Google图表的时间间隔:如何在@ api.model
中获取日期值  功能??
该函数只能读取所有表的结果集,当我尝试获取在字段中设置的结果(self.init_date)时,我总是收到“ False”
抱歉,我今天无法发布代码,但是如果没人能给我答案,我将在星期一发布它。
非常感谢你!

2 个答案:

答案 0 :(得分:0)

嗨,尝试使用类似这样的东西

from odoo import api,models, fields, _

class MyCustomModel(models.Model):
    _name = "my.custom.model"

    #... some fields
    date1 =  fields.Date(string="Date 1")
    date2 =  fields.Date(string="Date 2")

    @api.model
    def my_custom_func(self):
        # read all data in table
        all_records = self.env['my.custom.model'].search([])
        for rec in all_records:
            print(rec.date1, rec.date2)

这是访问所有记录的date1和date2的简单示例

答案 1 :(得分:0)

api.model装饰器使您可以访问模型的方法,但不能访问记录,因此可以在模型没有记录的情况下调用它们(请参见https://www.odoo.com/documentation/12.0/reference/orm.html#module-odoo.api)。

如果您编写的方法旨在始终接收记录,则只需移除api.model装饰器。