def create_source_code(self, box, price): ''' Save file data and create object in database ''' description = unicode(self.get_argument('description', '')) file_name = unicode( self.request.files['source_archive'][0]['filename'] ) source_code = SourceCode( file_name=file_name, box_id=box.id, price=price, description=description, ) self.dbsession.add(source_code) self.dbsession.flush() file_data = self.request.files['source_archive'][0]['body'] root = self.application.settings['source_code_market_dir'] save_file = open(str(root + '/' + source_code.uuid), 'w') source_code.checksum = self.get_checksum(file_data) save_file.write(file_data.encode('base64')) save_file.close() self.dbsession.add(source_code) self.dbsession.commit()