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