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