I opend the ticket.

 Issue 948 
<http://code.google.com/p/web2py/issues/detail?id=948>:SQLFORM.factory 
+ Multiple Tables + Upload Field + GAE Blob Problem
Thank you Massimo.

2012년 8월 21일 화요일 오후 12시 25분 57초 UTC+9, Massimo Di Pierro 님의 말:
>
> Please open a ticket about this.
>
> On Monday, 20 August 2012 11:49:14 UTC-5, JungHyun Kim wrote:
>>
>> Hello!
>>
>> I have a problem with upload field.
>>
>> I tried to upload a file through one form with two tables using 
>> SQLFORM.factory.
>> It worked OK on web2py rocket server. But with GAE server (both local 
>> test server and real GAE server), I can't upload files.
>> The problem is blob is None after uploaded.
>>
>> I defined two tables.
>>
>>
>>
>> db.define_table('mibmessage',
>>                     Field('user',db.auth_user,writable=False,readable=
>> False,default=auth.user_id,),
>>                     Field('message','text',notnull=True,
>>                             widget = lambda field, value: SQLFORM.widgets
>> .text.widget(field, value, _class='my-string')),
>>                     Field('attached_files','list:reference attached_file'
>> , writable=False, default=[], readable=False),
>>                 )
>>
>> db.define_table('attached_file',
>>                     Field('file','upload'),
>>                     Field('original_filename', writable=False, notnull=
>> False),
>>                     Field('mibmessage',db.mibmessage),
>>                 )
>>
>>
>>
>> And in controller, I saved them.
>>
>>    # Make a form
>>     form =  SQLFORM.factory(db.mibmessage, db.attached_file, table_name=
>> 'attached_file')
>>     
>>     # Save New Message
>>     if form.process().accepted:
>>         try:
>>             # Insert a message
>>             message_id = db.mibmessage.insert(**db.mibmessage.
>> _filter_fields(form.vars))
>>             form.vars.mibmessage=message_id
>>             
>>             if form.vars.file != '':
>>                 form.vars.original_filename = request.vars.file.filename
>>                 # Insert an attached file
>>                 image_file_id = db.attached_file.insert(**db.
>> attached_file._filter_fields(form.vars))
>>                
>>                 # The message has a list of attached files
>>                 db.mibmessage[message_id].update_record(attached_files=[
>> image_file_id])
>>                 db.commit()
>>
>>         except Exception:
>>             db.rollback()
>>
>>
>> After uploaded, both rows are created. But  'file_blob' field of the 
>> 'attached_file' is None.
>>
>> If I upload an file using SQLFORM with single table (attached_file), it 
>> is OK.
>>
>> Did I use SQLFORM.factory wrong?
>>
>> I read this thread ( 
>> https://groups.google.com/forum/?fromgroups#!searchin/web2py/SQLFORM.factory$20one$20form$20multiple$20tables$20blob/web2py/O6D1J8h_MNA/lmFbEF1XzWcJ%5B1-25%5D),
>>  
>> but I couldn't understand it. 
>>
>>
>>
>>
>>
>>

-- 



Reply via email to