2017-05-19 132 views
0

我嘗試在自定義模塊創建支點,但得到的錯誤類型錯誤: 的init()恰恰1個參數(2給出)支點自定義模塊odoo 9

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文件中存在問題?我不知道。

回答

1

您需要在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()))

您的問題將解決。

或者你可以在下面的代碼中寫入你的代碼。

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()))

+0

你好,之後添加@ api.model_cr初始化得到錯誤AttributeError的面前: '模塊' 對象有沒有屬性 'model_cr' –

+0

當把api.model得到埃羅返回old_api(個體經營,* ARGS,** kwargs) TypeError:old_api()至少需要3個參數(給出2個參數) –

+0

確保api必須存在於import語句中,'fields,models,api'所有這三個參數必須存在。 –