Sorry for insisting, I ´m using onvalidation in sqlform but if i use it in sqlform.factory i get a flash message Errors in Form. Please check it out!!!
*Secondly* as i am using sqlform.factory to add records how to use it also to update or delete? Thank you António 2013/1/21 Massimo Di Pierro <massimo.dipie...@gmail.com> > 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> >> >> *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.**stor**e(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.**var**s.fp_url) >>> img=Image.open(StringIO(**respon**se.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.**var**s.fp_url) >>>>> img=Image.open(StringIO(**respon**se.content)) >>>>> img.save('foto1231.jpg','JPEG'****) >>>>> temp=open('foto1231.jpg','rb') >>>>> photo=db.trabalhador.foto.**stor**e(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/**defaul**t/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\**res**tricted.py", line 212, in >>>>>> restricted >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> exec ccode in environment >>>>>> File "C:/web2pyGit/web2py/**applicati**ons/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 >>>>>>>> >>>>>>> -- >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>> -- >>> >>> >>> >>> >> >> -- > > > > --