yes. On Monday, 21 January 2013 11:35:00 UTC-6, Ramos wrote: > > can onvalidation be used with sqlform.factory ? > > i´m getting error > > Errors in Form. Please check it out!!! > > > Thank you > > > António > > 2013/1/17 Massimo Di Pierro <massimo....@gmail.com <javascript:>> > >> *You are storing the image twice:* >> * >> * >> *if trabalhador_form.process(onvalidation=attach_image_to_record).accepted: >> # here after validation * >> *def attach_image_to_record(form):* >> ... >> photo=db.trabalhador.foto.**store(temp,'foto.jpg') # here on >> validation >> * ... * >> form.vars.photo=photo *# here is where someting goes wrong....* >> * >> * >> *The problem is that you altering the form on validation.* >> * >> * >> * >> * >> *This this:* >> * >> * >> ** >> *def attach_image_to_record(form):* >> import cgi >> response=requests.get(form.**vars.fp_url) >> img=Image.open(StringIO(**response.content)) >> img.save('foto1231.jpg','JPEG'**) >> photo = cgi.FieldStorage() >> photo.file = open('foto1231.jpg','rb') >> photo.filename = 'foto.jpg' >> form.vars.photo=photo # not this on, you let process do upload >> >> >> ** >> >> This is very important for me , >> * >> * >> * >> * >> On Wednesday, 16 January 2013 07:49:30 UTC-6, Ramos wrote: >> >>> 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 <ramst...@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 <ramst...@gmail.com> >>>> >>>>> I´m testing this book example >>>>> http://web2py.com/books/**default/chapter/29/07#**onvalidation<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(tablena**me,*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(fiel**d_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 <abas...@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 >>>>>>> >>>>>> -- >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>> -- >> >> >> >> > >
--