Webコントローラ¶
コントローラ¶
コントローラは :class:`~odoo.modelのように拡張性を提供する必要があります。 odel`は、前提条件(ロードされたモジュールを持つデータベース)と同じメカニズムを使用できない場合がある (e. をクリックします。データベースが作成されていないか、データベースが選択されていません。
このため、コントローラはモデルとは別の独自の拡張メカニズムを提供します。
コントローラは 継承 から Controller
によって作成されます。ルートは、 :func:`~odoo.http.route`で飾られたメソッドによって定義されます:
class MyController(odoo.http.Controller):
@route('/some_url', auth='public')
def handler(self):
return stuff()
コントローラを*オーバーライド*するには、 :ref:はクラスから <python:tut-inheritance>を継承し、関連するメソッドをオーバーライドします。必要に応じて再公開します。
class Extension(MyController):
@route()
def handler(self):
do_before()
return super(Extension, self).handler()
:func:`~odoo.http.route`で飾る方法はメソッド(およびルート)を表示させるために必要です: メソッドが装飾せずに再定義された場合、"未公開"になります。
すべてのメソッドのデコレータが結合されます。オーバーライドメソッドのデコレータが引数を持たない場合、以前のものはすべて保持されます。 指定された引数はEを上書きします .:
class Restrict(MyController): @route(auth='user') def handler(self): return super(Restrict, self).handler()
/some_url
をパブリック認証からユーザーに変更します (ログインが必要)
API¶
ルーティング¶
リクエスト¶
リクエストオブジェクトはリクエストの開始時に odoo.http.request
に自動的に設定されます。