在自定义模块 odoo 9 中旋转
Pivot in custom module odoo 9
我尝试在自定义模块中创建数据透视表,但出现类型错误错误:
init() 恰好接受 1 个参数(给定 2 个)
class ReportMyModuleUser(models.Model):
_name = "report.my.module.user"
_description = "My module"
_auto = False
name = fields.Char(string = 'Name')
date = fields.Datetime(string = 'Date')
user_id = fields.Many2one('res.users', 'User')
def _select(self):
select_str = """
SELECT
pn.name,
pn.date,
pn.user_id
"""
return select_str
def _group_by(self):
group_by_str = """
GROUP BY
pn.name
"""
return group_by_str
def init(self):
print(self)
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute("""
CREATE view %s as
%s
FROM my_table pn
%s
""" % (self._table, self._select(), self._group_by()))
有什么解决办法吗?
也许是 .xml 文件中的问题?我不知道。
您需要在 init 上面管理一个 api,如下所示。
@api.model_cr
def init(self):
print(self)
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute("""
CREATE view %s as
%s
FROM my_table pn
%s
""" % (self._table, self._select(), self._group_by()))
您的问题将得到解决。
或者您可以使用 OLD api 编写代码,如下所示。
def init(self, cr):
print(self)
tools.drop_view_if_exists(cr, self._table)
cr.execute("""
CREATE or REPLACE VIEW report_my_module_user as
%s
FROM my_table pn
%s
""" % (self._select(), self._group_by()))
我尝试在自定义模块中创建数据透视表,但出现类型错误错误: init() 恰好接受 1 个参数(给定 2 个)
class ReportMyModuleUser(models.Model):
_name = "report.my.module.user"
_description = "My module"
_auto = False
name = fields.Char(string = 'Name')
date = fields.Datetime(string = 'Date')
user_id = fields.Many2one('res.users', 'User')
def _select(self):
select_str = """
SELECT
pn.name,
pn.date,
pn.user_id
"""
return select_str
def _group_by(self):
group_by_str = """
GROUP BY
pn.name
"""
return group_by_str
def init(self):
print(self)
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute("""
CREATE view %s as
%s
FROM my_table pn
%s
""" % (self._table, self._select(), self._group_by()))
有什么解决办法吗?
也许是 .xml 文件中的问题?我不知道。
您需要在 init 上面管理一个 api,如下所示。
@api.model_cr
def init(self):
print(self)
tools.drop_view_if_exists(self._cr, self._table)
self._cr.execute("""
CREATE view %s as
%s
FROM my_table pn
%s
""" % (self._table, self._select(), self._group_by()))
您的问题将得到解决。
或者您可以使用 OLD api 编写代码,如下所示。
def init(self, cr):
print(self)
tools.drop_view_if_exists(cr, self._table)
cr.execute("""
CREATE or REPLACE VIEW report_my_module_user as
%s
FROM my_table pn
%s
""" % (self._select(), self._group_by()))