I just noticed one image created in upload folder and one txt file. Inside the txt file i see the name of jpg file created above.
why is that? help please :) António 2013/1/16 António Ramos <ramstei...@gmail.com> > can onvalidation set upload file field? > > i was complaining that form.vars was empty. > It is if the controller does not return the form to the view > So i return the form and away with my quest. > > Now, in onvalidation i set the field with the upload file. > I have to becaue i have a different upload button that goes online to get > a file. > Its working but the image file i set goes as a txt file to the database, > why > > > here my code: > (I use PIL module) > > *if > trabalhador_form.process(onvalidation=attach_image_to_record).accepted:* > > *def attach_image_to_record(form):* > > response=requests.get(form.vars.fp_url) > img=Image.open(StringIO(response.content)) > img.save('foto1231.jpg','JPEG') > temp=open('foto1231.jpg','rb') > photo=db.trabalhador.foto.store(temp,'foto.jpg') > * print photo # echoes something like > "trabalhador.foto.989708787087078.9823492034.jpg* > form.vars.photo=photo *# here is where someting goes wrong....* > > This is very important for me , > can anyone explain why a jpg is inserted as a txt? how to force jpg ? > > Thank you > António > > > 2013/1/15 António Ramos <ramstei...@gmail.com> > >> I´m testing this book example >> http://web2py.com/books/default/chapter/29/07#onvalidation >> I get error on field named 'a' >> >> >> Traceback (most recent call last): >> File "C:\web2pyGit\web2py\gluon\restricted.py", line 212, in restricted >> >> >> >> exec ccode in environment >> File "C:/web2pyGit/web2py/applications/teste1/models/db.py" >> <http://127.0.0.1:8000/admin/default/edit/teste1/models/db.py>, line 91, in >> <module> >> >> >> >> Field('c', 'integer', readable=False, writable=False)) >> >> >> >> File "C:\web2pyGit\web2py\gluon\dal.py", line 7189, in define_table >> >> >> >> table = self.lazy_define_table(tablename,*fields,**args) >> >> >> >> File "C:\web2pyGit\web2py\gluon\dal.py", line 7206, in lazy_define_table >> >> >> >> table = table_class(self, tablename, *fields, **args) >> >> >> >> File "C:\web2pyGit\web2py\gluon\dal.py", line 7612, in __init__ >> >> >> >> db.check_reserved_keyword(field_name) >> >> >> >> File "C:\web2pyGit\web2py\gluon\dal.py", line 6933, in >> check_reserved_keyword >> >> >> >> 'invalid table/column name "%s" is a "%s" reserved SQL keyword' % (name, >> backend.upper())) >> >> >> SyntaxError: invalid table/column name "a" is a "ALL" reserved SQL keyword >> >> >> So i renamed all to a1,b1,c1 and it works ! >> >> Now my initial complain is still not working. I will test tomorrow and >> post some code. >> Meanwhile please check why a is not a valid field name and update the >> book if necessary. >> thank you >> >> 2013/1/15 Anthony <abasta...@gmail.com> >> >>> form.vars should work. Can you show more code? Note, form.request_vars >>> is simply a copy of the original request.post_vars, so not equivalent to >>> form.vars. >>> >>> Anthony >>> >>> >>> On Tuesday, January 15, 2013 10:17:08 AM UTC-5, Ramos wrote: >>>> >>>> hello reading the book online i tried the code >>>> >>>> >>>> def my_form_processing(form): >>>> c = form.vars.a >>>> >>>> form.vars.b >>>> if c < 0: >>>> form.errors.b = 'a' >>>> else: >>>> form.vars.c = c >>>> >>>> >>>> >>>> but form.vars was empty >>>> >>>> to access my form vars i changed to form.request_vars >>>> >>>> *Is the book wrong?* >>>> >>>> Thank you >>>> António >>>> >>> -- >>> >>> >>> >>> >> >> > --