Webvezérlők¶
Vezérlők¶
A vezérlőknek biztosítaniuk kell a kiterjeszthetőséget, hasonlóan a Model-hez, de nem használhatják ugyanazt a mechanizmust, mivel az előfeltételek (egy adatbázis betöltött modulokkal) még nem állhatnak rendelkezésre (pl. nincs még létrehozva adatbázis, vagy nincs kiválasztva adatbázis).
A vezérlők ezért saját kiterjesztési mechanizmust biztosítanak, amely elkülönül a modellekétől:
A vezérlőket a Controller öröklésével hozzák létre. Az útvonalakat a route() dekorátorral ellátott metódusok határozzák meg:
class MyController(odoo.http.Controller):
@route('/some_url', auth='public')
def handler(self):
return stuff()
Egy vezérlő felülírásához örökölje annak osztályát, és írja felül a releváns metódusokat, szükség esetén újra kitéve azokat:
class Extension(MyController):
@route()
def handler(self):
do_before()
return super(Extension, self).handler()
decorating with
route()is necessary to keep the method (and route) visible: if the method is redefined without decorating, it will be „unpublished”az összes metódus dekorátorai kombinálódnak, ha a felülíró metódus dekorátora nem tartalmaz argumentumot, az összes korábbi megmarad, bármely megadott argumentum felülírja a korábban meghatározottakat, pl.:
class Restrict(MyController): @route(auth='user') def handler(self): return super(Restrict, self).handler()
megváltoztatja a
/some_url-t a nyilvános hitelesítésről felhasználóra (bejelentkezést igényel)
API¶
Útvonalkezelés¶
Kérelem¶
A kérés objektum automatikusan beállításra kerül az odoo.http.request-en a kérés kezdetén.