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