def Article(): id=request.vars.id row=db(db.Article.id==id).select()
Not sure how you get the Images filenames. The code does not seem join the Article to the Image? Maybe something like: def Article(): id=request.vars.id # <<-- only ok for testing row=db((db.Article.id==id)&(db.Article.TopImage==db.Images.id)).select() Regards, David On Wednesday, September 5, 2012 12:35:26 PM UTC+1, BlueShadow wrote: > > Hi, > its driving me nuts. I used the code from web2pyslices to generate > thumbnails: > db.py: > db.define_table('Images', > Field('Name',length=512), > Field('Image','upload'), > Field('thumb','upload',writable=False,readable=False), > format = '%(Name)s' # <<< important > ) > db.define_table('Article', > Field('Title',length=512), > Field('Content','text'), > Field('Submitted','datetime',default=datetime.datetime.now()), > Field('Views','integer',default=0), > Field('TopImage',db.Images) > ) > default.py: > def download(): > return response.download(request, db) > def makeThumbnail(dbtable,ImageID,size=(200,200)): > try: > thisImage=db(dbtable.id==ImageID).select()[0] > import os, uuid > except: > print "Error while loading libraries" > return > try: > from PIL import Image > except: > print "Error while Importing PIL library" > return > print request.folder + 'uploads/' + thisImage.Image > im=Image.open(request.folder + 'uploads/' + thisImage.Image) > im.thumbnail(size,Image.ANTIALIAS) > thumbName='uploads.thumb.%s.jpg' % (uuid.uuid4()) > im.save(request.folder + 'uploads/' + thumbName,'jpeg') > thisImage.update_record(thumb=thumbName) > response.flash = 'Thumb created everything went fine' > return > def newImage(): > dbtable = db.Images #uploads table name > if len(request.args): > records = db(dbtable.id==request.args[0]).select() > if len(request.args) and len(records): > form = SQLFORM(dbtable, records[0], deletable=True) > else: > form = SQLFORM(dbtable) > if form.accepts(request.vars, session): > response.flash = 'Entry for Images Database accepted,start > creating thumb' > makeThumbnail(dbtable,form.vars.id,(200,200)) > elif form.errors: > response.flash = 'Error in Form for Images Database' > ## Quick list just to demonstrate... > list = crud.select(dbtable) > return dict(form=form,list=list) > def Article(): > id=request.vars.id > row=db(db.Article.id==id).select() > row[0].update_record(Views=row[0].Views+1) > if len(row)==0: > redirect(URL(r=request,f='Articles')) > return dict(Article=row[0]) > article.html > {{extend 'layout.html'}} > <h1> {{=Article.Title}} </h1> > <br> > <center> > {{print URL(r=request, c='default', > f='download',args=Article.TopImage.thumb)}} > {{=IMG(_src=URL(r=request, c='default', > f='download',args=Article.TopImage.thumb),_style="display:block;")}} > </center> > <br> > {{=XML(Article.Content)}}<br><br> > the thumbnail is generated by the code as it should. and it lands in the > upload folder with the original image as it should. if I change the > article.TopImage.thumb to .image it works perfectly. if I change it to > .thumb again no image is displayed. the path and name I get from the print > seem to be correct at least it is the same path as for the origianl image. > thanks for your help guys > > --