Thank you Massimo, you are always available to help. Where is Bill Gates when we need it right?
I restarted web2py and it works.... Strange.... Second question. as i am using sqlform.factory to add records how to use it also to update or delete? Thank YOU again! António 2013/1/21 Massimo Di Pierro <massimo.dipie...@gmail.com> > Here is my test. > > $ python web2py.py -S welcome > (InteractiveConsole) > >>> import sys > >>> form = SQLFORM.factory(Field('name')) > >>> form.process(onvalidation=lambda > form:sys.stdout.write('check!\n'),formname=None,session=None) > check! > > It works. Something else is wrong in your code. If you could post a > complete example we can try help you debug it. > > Massimo > > > > > On Monday, 21 January 2013 12:03:11 UTC-6, Ramos wrote: > >> 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....@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 >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> -- >>>>> >>>>> >>>>> >>>>> >>>> >>>> -- >>> >>> >>> >>> >> >> -- > > > > --