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

-- 



Reply via email to