SQLFORM onvalidate

14 vistas
Ir al primer mensaje no leído

leone

no leída,
9 oct 2009, 8:20:41 a.m.9/10/2009
para web2py-users
I have questions about SQLFORM onvalidate.
Before inserting a row I have to resize an image by PIL and push
b64encoded bytes on a blob field.
So I have defined onvalidate=DoSomething in SQLFORM.
DoSomething has form as input arg, resize image as thumbnails, encode
it and push in form.vars.myblob
(or db.mytable.myblob???).
The new record is OK, but blob field is empty.
Can someone orient me?

leone

no leída,
9 oct 2009, 8:48:03 a.m.9/10/2009
para web2py-users
excuse me: onvalidation not onvalidate.

leone

no leída,
9 oct 2009, 9:49:49 a.m.9/10/2009
para web2py-users
Solved:

if form.accepts(request.vars, session, keepvalues=True,
onvalidation=WriteThumb):
.........

def WriteThumb(form):
i = cStringIO.StringIO()
o = cStringIO.StringIO()
i.write(form.vars.imgfile.value)
i.seek(0)
im = Image.open(i, 'r')
im.thumbnail((100,100),Image.ANTIALIAS)
im.save(o,'jpeg')
form.vars.thumbnail = base64.b64encode(o.getvalue())
o.close()
i.close()

<img src="data:image/jpeg;base64,{{=row['thumbnail']}}"
alt="Thumbnail photo" />

leone

no leída,
9 oct 2009, 9:51:04 a.m.9/10/2009
para web2py-users
I forget:

from PIL import Image
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos