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

-- 



Reply via email to