I am readying your question and my answer again and I said something silly. You should be able to do what you originally proposed
{{extend request.layout}} although I'd probably do {{extend reponse.layout}} instead. I tried and both work for me (unless the app is bytecode compiled). If the app is bytecode compiled dynamical extend and imports are not supported. Massimo On Apr 16, 8:09 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > On Apr 16, 2010, at 5:13 PM, mdipierro wrote: > > > Not quite. > > > {{extend name}} without quote is supported by name has to be a > > variable containing the name of the template. This allows to have > > templates determined dynamically based on user for example. > > So instead of {{extend request.layout}}, what? > > Can I do: > > {{layout = request.layout}} > {{extend layout}} > > ? > > Note that {{extend request.layout}} works fine in normal operation. It only > breaks when I try to compile the app, because request isn't defined for the > eval(). > > > > > On Apr 16, 5:24 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > >> On Apr 16, 2010, at 2:11 PM, Jonathan Lundell wrote: > > >>> I have several questions regarding app compiles, but the first one is > >>> this: > > >>> Error traceback > >>> 1. > >>> 2. > >>> 3. > >>> 4. > >>> 5. > >>> 6. > >>> 7. > >>> 8. > >>> 9. > >>> 10. > >>> 11. > >>> 12. > >>> 13. > >>> 14. > >>> 15. > >>> 16. > >>> 17. > >>> 18. > >>> 19. > >>> Traceback (most recent call last): > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/restricted.py", > >>> line 173, in restricted > >>> exec ccode in environment > >>> File > >>> "/Users/jlundell/VTC/vpeps-web2py/web2py/applications/admin/controllers/default.py", > >>> line 1061, in <module> > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/globals.py", line > >>> 96, in <lambda> > >>> self._caller = lambda f: f() > >>> File > >>> "/Users/jlundell/VTC/vpeps-web2py/web2py/applications/admin/controllers/default.py", > >>> line 213, in compile_app > >>> c = app_compile(request.args[0], request) > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/admin.py", line > >>> 141, in app_compile > >>> compile_application(folder) > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/compileapp.py", > >>> line 520, in compile_application > >>> compile_views(folder) > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/compileapp.py", > >>> line 293, in compile_views > >>> data = parse_template(file, path) > >>> File "/Users/jlundell/VTC/vpeps-web2py/web2py/gluon/template.py", line > >>> 139, in parse_template > >>> t = os.path.join(path, eval(match.group('name'), context)) > >>> File "<string>", line 1, in <module> > >>> NameError: name 'request' is not defined > >>> The match in question is presumably {{extend request.layout}}, right? > > >> OK, that's what I changed. Because I was experimenting with layouts, I > >> changed {{extend 'layout.html'}} to {{extend request.layout}}, which I > >> assumed would work because request appears to be defined in views. But > >> it's not defined in the context of the extend logic's eval(). > > >> It seems like a reasonable thing to be able to do.... > > >> -- > >> Subscription settings:http://groups.google.com/group/web2py/subscribe?hl=en