diff -r 5d149ba65dd0 -r 6e9f7abee4ef req.py --- a/req.py Tue Dec 08 18:12:31 2009 +0100 +++ b/req.py Wed Dec 09 10:30:52 2009 +0100 @@ -283,13 +283,26 @@ # formating methods ####################################################### def view(self, __vid, rset=None, __fallback_oid=None, __registry='views', - **kwargs): - """shortcut to self.vreg.view method avoiding to pass the request""" + initargs=None, **kwargs): + """Select object with the given id (`__oid`) then render it. If the + object isn't selectable, try to select fallback object if + `__fallback_oid` is specified. + + If specified `initargs` is expected to be a dictionnary containing + arguments that should be given to selection (hence to object's __init__ + as well), but not to render(). Other arbitrary keyword arguments will be + given to selection *and* to render(), and so should be handled by + object's call or cell_call method.. + """ + if initargs is None: + initargs = kwargs + else: + initargs.update(kwargs) try: - view = self.vreg[__registry].select(__vid, self, rset=rset, **kwargs) + view = self.vreg[__registry].select(__vid, self, rset=rset, **initargs) except RegistryException: view = self.vreg[__registry].select(__fallback_oid, self, - rset=rset, **kwargs) + rset=rset, **initargs) return view.render(**kwargs) def format_date(self, date, date_format=None, time=False):