1
からメソッドを呼び出すことはできません。odoo [QWEB]私はテンプレートからモデルのメソッドを呼び出すと、エラーを受信しようテンプレート
class testmodule(models.Model):
_name = 'testmodule'
def get_session_data(self, cr, uid, ids, context=None):
return u'READING'
セキュリティ設定:
QWebException: "'NoneType' object has no attribute 'get_session_data'" while evaluating
'testmodule.get_session_data()'
モデルは、このような見解を持っています
access_testmodule,testmodule,model_testmodule,,1,1,1,1
Qwebのテンプレート:
<t t-esc="testmodule.get_session_data()" />
私は間違っていますか?私がウェブサイトのモデルからメソッドを呼び出そうとすると、すべて正常に動作します。私は自分のクラスとメソッドをそれらから使いたい。どうしたらいいですか?
UPD: templates.xml:
<template id="website.user_navbar" inherit_id="website.layout" groups="base.group_user">
<xpath expr="//body/div['id=wrawrap']" position="before">
<div style="background-color: #000800; height:110px;color: red">
| <t t-raw="website.is_user()" /> |<br />
| <t t-esc="testmodule.get_session_data()" /> |
</div>
</xpath>
</template>
testmoduleが定義されていません。おそらく、JavaScriptからget_session_dataを呼び出して、結果をレンダリングする必要があります。あなたのXMLコードをもっと表示できますか? – Lucas
投稿を更新しました。 – Skif
私は確信していませんが、_prepare_qcontext(odoo/addons/website/models/ir_ui_view.py)メソッドを見ると、変数ウェブサイトが定義されていることがわかります。そのため、website.is_user( )が動作します。ですから、あなたは_prepare_qcontextをオーバーライドして、返すオブジェクトにtestmoduleのインスタンスを追加する必要があるかもしれないと思いますので、xmlからget_session_dataを呼び出すことができます。 – Lucas