Sprox form with Turbogears, using Mako, only displ

2019-07-15 10:18发布

问题:

I'm generating a Sprox form with Turbogears 2.1 and trying to display it in a Mako template. Here is my code:

To define the form:

class NewUserForm(AddRecordForm):  
    __model__ = User  
newuserform = NewUserForm(DBSession)  

The controller definition that assigns the form and calls the template:

@expose('limelight.modules.users.templates.register')  
def register(self, **kw):  
    tmpl_context.register_form = newuserform  
    return dict(value=kw)  

And the relevant template code:

${tmpl_context.register_form(value=value)}

The problem is the HTML code is displayed as plain text on the page, not rendered HTML.

回答1:

Figured it out. I have to pass the variable through the the 'n' mako filter to remove any automatic filters mako applies to the html generated. So:

${tmpl_context.register_form(value=value) | n}