Looks like I have a problem. I want to compute field like this and it
works FINE:

Field('logo_small','upload',writable=False,readable=False,widget=uploadWidget,compute=lambda
r: THUMB(r)),

def THUMB(r):

    try:
        image=r['logo']
    except:
        #yes, None is deleting my thumbnail
        return None

    from PIL import Image
    import os
    im = Image.open(request.folder + 'uploads/' + image)
    maxheight=50
    maxwidth=100
    xsize, ysize = im.size
    ratio=min(maxwidth/float(xsize), maxheight/float(ysize))
    newxsize=int(xsize*ratio)
    newysize=int(ysize*ratio)
    im=im.resize((newxsize, newysize), Image.ANTIALIAS)
    root,ext = os.path.splitext(image)
    thumb='%s_thumb%s' %(root, ext)
    im.save(request.folder + 'uploads/' + thumb)
    return thumb



But there is a problem with this behaviour. When I do somewhere else
db(db.product.id==id).update(somefield="",someother="")
AND LIST OF FIELDS UPDATED DOES NOT CONTAIN LOGO FIELD
it is throwing exception - understandable
what should I write in my code in the exception
or should we change that?
like somehow disable compute in the update statement


-- 
Kuba

Reply via email to