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
--