Les objets couramment utilisés dans chaque vue de l'application Pyramid peuvent être définis intelligemment à l'aide du mécanisme d'objet racine.
class RootResource(object):
u"""Ressource racine de l'application
Puisque Traversal n'est pas utilisé, il est passé à View en tant que contexte tel quel.
"""
__name__ = None
__parent__ = None
__acl__ = []
def __init__(self, request):
self._repos = {
'user': UserRepository(),
}
@property
def repos(self):
u"""Chaque référentiel est fourni via un dictionnaire"""
return self._repos
Si vous le transmettez à l'argument root_factory dans la définition de l'application,
config = Configurator(
settings=settings,
root_factory="foo.resource.RootResource"
)
Vous pouvez accéder aux dépôts depuis la vue comme suit:
@view_config(route_name="user_detail")
def user_detail(context, request):
user_repo = context.repos['user']
user = user_repo.getById(...)
return ...
Recommended Posts