2016-05-09 22 views
0

odoo 8でモジュールを作成しました。モジュールの目的は、別のページへのリンクを持つページを作成することです。私は最初にメインテンプレートがレンダリングされ、次にサブページへのリンクがあることを意味します。すべてがメインページまでうまく動作します。私はcontrollers.py、models.py、ビュー(default.xml)を持っています。 openerp .py 'data'の値は 'views/default.xml'です。 コントローラがある:私のテンプレートでodoo 8複数ページナビゲーションコントローラ

@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が

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

は今、私はメインページがまだでていない置き換え(つまり、メインとサブ)2つのIDを見ていていますリンク。ボディはデフォルトで置き換えられます。 しかし、私は、サブページのリンクをクリックすると、ボディを置き換える必要があります。

私はodooの初心者ですので、何も知らないのです。

答えて

0

のXpathそれだけでモジュールのupdation後(ないテンプレートを胸が張り裂けるの 時)働いています

ちょうど同じように、その場合にはT-場合を使用します。

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


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

コントローラからkeyword:show_tabをレンダリングします。

私の個人的な提案はもう1つ、タブを置き換えるためのコントローラを2つ作成しないでください。

単一コントローラがDRYの概念を追跡しようとしなさいodooで複数の ルートを扱うことができます。

+0

Thanks Prakash、基本的に私の問題は、ツリー/リストビューのデータがある場所に自分のユーザーインターフェイスを作成したいのではなく、代わりにページ全体のデザインを作成することでした。フォームやリスト/ツリービューの項目がある場合は、独自のUIを作成する方法を教えてください。私はサイドバーとヘッダーバーに触れないことを意味します – user280960

+0

あなたはodoo9 "website_portal.account"テンプレートの参照を取ることができ、ブートストラップリファレンスを読むことができます。http://getbootstrap.com/components/#panels-tables – prakash

+0

こんにちはPrakash、私は基本的に望みます基本テンプレート(メイン)を継承し、本文の内容を置き換える別のテンプレートにナビゲートします。また、コントローラから渡される異なるモデルのデータも持ちます。なぜ私はそれがクリックされたときにナビゲートされる必要があるのですか? – user280960