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

-- 



Reply via email to