odoo 8 多页面导航控制器

odoo 8 multiple page navigation controller

我在 odoo 8 中创建了一个模块。模块的目的是创建一个带有 link 的页面到另一个页面。我的意思是首先呈现主模板,然后有一个 link 到子页面。一切正常,直到主页。我有 controllers.py、models.py、观看次数 (default.xml)。在我的 openerp.py 中 'data' 的值:'views/default.xml'。 控制器是:

@http.route('/test/', auth='public')
def index(self, **kw):
    return http.request.render('test.main',{ 'root':'/test' })

@http.route('/test/sub', auth='public')
def sub(self, **kw):
    return http.request.render('test.sub',{ 'root':'/test' })

在我的模板中,你有两个 id(即 main 和 sub)

<openerp>
  <data>
       <template id='main'>
           <div class='body'>
                 test body 
                 click to go to next page : <a t-attr-href = "#{ root }/sub">Next Page</a>
           </div>
           <div class='footer'>
                 test footer 
           </div>
       </template>

       <template id='sub' inherit_id="main">
           <xpath expr="//div[@class='body']" position="replace">
           <div class="page">
               replaced data
           </div>
           </xpath>
       </template>
  </data>
</openerp>

现在,当我 运行 这段代码时,我看到主页已经被替换,而不是 link。主体被默认替换。 但我希望在单击子页面的 link 时替换正文。

我是odoo新手,对它一无所知

Xpath do it work just after the updation of module( not at the time of rending the template )

在那种情况下就用t-if,喜欢:

< t t-if ="not show_tab"> // original data </t>


< t t-if ="show_tab"> // replaced data </t>

从您的控制器渲染 keyword:show_tab

还有一点,这是我个人的建议,不要为了替换一个选项卡而创建两个控制器。

A single controller can handle multiple route in odoo .Please try to follow the concept of DRY.