Any ideas? Cheers
On Monday, December 1, 2014 11:46:57 AM UTC+13, Massimo Di Pierro wrote: > > You cannot do this uploadfolder= lambda r:... > But this is a chicken-egg problem. You want r to be the row but the row is > not created until after the file is uploaded therefore you cannot specify > the upload folder as function of something that happens after. > > Please explain to us in english of the folder should depend on the upload > and perhaps we can suggest a way to do it. > > > On Saturday, 29 November 2014 14:08:20 UTC-6, James Burke wrote: >> >> How do you create a dynamic uploadfolder for an upload Field? >> >> I tried using: >> uploadfolder= lambda r: db.repository(r.repository_id).directory >> >> but i get the error message, I guess it doesn't have the same >> functionality as compute: >> cannot concatenate 'str' and 'function' objects >> >> I'm also using custom_store/retreive to maintain the files original >> filename >> >> def store_file(file, filename=None, path=None): >> path = path # "applications/init/uploads" >> if not os.path.exists(path): >> os.makedirs(path) >> pathfilename = os.path.join(path, filename) >> dest_file = open(pathfilename, 'wb') >> try: >> shutil.copyfileobj(file, dest_file) >> finally: >> dest_file.close() >> return filename >> >> >> If I can set the uploadfolder dynamically then it's passed to store_file >> as path. >> >> I also tried: >> path = db.repository(db.workbench(db.workbench.name==filename).repository >> ).directory >> >> But it can't find a record, I guess because store_file is run before the >> record is created in the db. >> >> Any suggestions? >> >> Thank you! >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.