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


-- 



Reply via email to