I think you want this: class CustomWIdget():
def __init__(self, parameters=None): pass def html(self): return DIV(self.field.name) def __call__(self, field, value): self.field = field self.value = value return self.html() #this doesnt return html markup, escaped text instead db.define_table("table1", Field("myField", "string", widget=CustomWidget() ) ) On Friday, 25 April 2014 22:40:57 UTC-5, aleon...@gmail.com wrote: > > > Hi, Im having troubles defining widgets as classes. When widgets are > defined as functions it all works well, the function returns a html > object(DIV, UL, ...) and the view renders the markup correctly, but im > trying to define the widget as a class to handle static files requirements > for that widget. > > I have tried the __str__ method to render the widget but the view(or > SQLFORM) renders as text, not html markup. > > Here is some example code: > > #Widget as a function > def CustomWidget(field, value): > return DIV(field.name, _class="myClass") > > #Widget as a class > class CustomWIdget(): > > def __init__(self, field, value): > self.field = field > self.value = value > > def html(self): > return DIV(self.field.name) > > def __str__(self): > return str(self.html()) #this doesnt return html markup, escaped > text instead > > db.define_table("table1", > Field("myField", "string", widget=CustomWidget) > ) > > Thanks in advance. > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.