Here is a custom validator that replaces '-' with '_' class MyValidator(obejct): def __call__(self,value): return (value.replace('-','_'), None)
Field(..., requires=MyValidator()...) On Wednesday, 19 December 2012 16:54:21 UTC-6, wwwgong wrote: > > I thought validator only validates, can you show me how to update field > with the sanitized value. > Thanks, > > On Wednesday, December 19, 2012 9:57:48 AM UTC-5, viniciusban wrote: >> >> Try a custom validator to sanitize your description field. >> >> >> On Wed, Dec 19, 2012 at 12:06 PM, wwwgong <wen.g...@gmail.com> wrote: >> > Hi, >> > I like to store youtube videos into a table: >> > >> > db.define_table('youtube', >> > Field('code'), >> > Field('description') >> > ) >> > >> > def youtube_repr(code,width=400,height=250): >> > return XML(""" >> > <object width="%(width)s" height="%(height)s"> >> > <param name="movie" >> > value="http://www.youtube.com/v/%(code)s&hl=en_US&fs=1&"></param> >> > <param name="allowFullScreen" value="true"></param> >> > <param name="allowscriptaccess" value="always"></param> >> > <embed src="http://www.youtube.com/v/%(code)s&hl=en_US&fs=1&" >> > type="application/x-shockwave-flash" >> allowscriptaccess="always" >> > allowfullscreen="true" width="%(width)s" >> > height="%(height)s"></embed> >> > </object>""" % dict(code=code, width=width, height=height) >> > ) >> > >> > db.youtube.code.represent = youtube_repr >> > >> > with this controller: >> > def youtube_video(): >> > form = SQLFORM.grid(db.youtube) >> > return dict(form=form) >> > >> > If the "description" field contains double quote char {"}, it will >> messes >> > up, >> > see screenshot at >> > http://dl.dropbox.com/u/54552252/cleanse-web2py-field-value.jpg >> > >> > I know web2py offers custom validator to detect special char in Form >> field, >> > but is it possible to attach a pre-process function at DAL layer to >> cleanse >> > field value before db operation? >> > >> > Something like: >> > >> > db.youtube.description.preprocess = cleanse_special_char >> > >> > where "cleanse_special_char" is a function to cleanse >> db.youtube.description >> > field value >> > >> > Can someone offer a solution or workaround? >> > >> > Thanks, >> > Wen >> > >> > >> > -- >> > >> > >> > >> > --