2017-06-04 29 views
0

我想創建動態視圖,所以我想在python一邊創建視圖。但是,當我嘗試保存視圖「arch_base」字段未設置。有人能告訴我有什麼問題嗎?這裏是我的功能如何在Python端創建擴展窗體視圖?

@api.onchange('field_id') 
def create_validation_button(self): 
    model = self.field_id.model_id.model 
    model_view = self.env['ir.ui.view'].search([("model", "=", model), ('type', "=", "form")]) 
    arch = '<xpath expr="//header" postition="inside"><button string="Add Followers" type="object" name="add_project_followers" /></xpath>' 
    if model_view: 
     self.view_id = None 
     self.env['ir.ui.view'].search(
      [("model", "=", model), ('name', "=", 'validation.' + model_view.name)]).unlink() 
     view_data = {'name': 'validation.' + model_view.name, 'type': 'form', 'model': model, 'priority': 1, 
        'inherit_id': model_view.id, 
        'mode': 'extension', 
        'arch_base': arch.encode('utf-8')} 
     view = self.env["ir.ui.view"].create(view_data) 
     self.view_id = view 
+0

歡迎堆棧覆蓋低。請查看[Tour](https://stackoverflow.com/tour)和[Asking](https://stackoverflow.com/help/asking)。 – Shiro

+0

你想用動態視圖做什麼?爲什麼不用XML創建視圖?另外,你可以包含由你的'add_project_followers'方法執行的代碼嗎? – travisw

+0

我想在用戶選擇的視圖上創建一個驗證按鈕。這時我們假設'add_project_followers'在控制檯上打印一些東西。當'create_validation_button'被執行時,視圖被創建並分配給他的父母,但只有沒有設置的'arch_base'。 – segito10

回答