首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >odoo 8多页导航控制器

odoo 8多页导航控制器
EN

Stack Overflow用户
提问于 2016-05-09 13:40:06
回答 1查看 652关注 0票数 0

我在odoo 8中创建了一个模块。模块的目的是创建一个带有链接到另一个页面的页面。我的意思是,首先,主模板被呈现,然后有一个链接到子页面。在主页面之前一切都很好。我有controllers.py,models.py,views(default.xml)。在我的openerp.py中,'data‘:’view/default.xml‘的值。控制人是:

代码语言:javascript
复制
@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' })

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

代码语言:javascript
复制
<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>

现在,当我运行这段代码时,我看到主页面已经被替换,而不是用链接。默认情况下,身体将被替换。但是我希望当点击子页面的链接时,身体应该被替换。

我是奥多的新手,所以对此一无所知。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-09 15:54:59

Xpath只在模块更新之后工作(而不是在重绘模板时)。

在这种情况下,只需使用t-if,比如:

代码语言:javascript
复制
< t t-if ="not show_tab"> // original data </t>


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

从控制器呈现keyword:show_tab

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

单控制器可以处理odoo .Please中的多个路由,尝试遵循干的的概念。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37117301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档