Ferris2.2 framework, upload an image with wtforms, python ?

21 views
Skip to first unread message

Jill Russek

unread,
Oct 5, 2015, 11:53:07 AM10/5/15
to Ferris Framework


So.. This is my code for uploading an image with the Ferris2 frame work. Yay me, it works. However, see how I had to comment out gcs.open(... ? I don't want that commented out. I'd really love to just upload straight to cloud storage using that call, and not having to use anything related to blobs. What's the easiest way to  accomplish this given that I'm stuck with using the AClassForm and the ferris framework?



class AClassForm(forms.model_form(AClass, exclude=('image_url') ) ):
     image
= FileField(u'Image File')

class AClasses(Controller):

   
class Meta:

       
Model = AClass

        prefixes
= ('admin',)

        components
= (scaffold.Scaffolding, Upload)

       
Form = AClassForm

         

    admin_list
= scaffold.list

    admin_view
= scaffold.view

    admin_edit
= scaffold.edit

    admin_delete
= scaffold.delete

     

   
def admin_add(self):

       
self.scaffold.ModelForm = AClassForm

       
self.scaffold.form_encoding = "multipart/form-data"    

       
def before_save_callback(controller,container, item):

            image
= self.request.params["image"]

            object_name
= blobstore.parse_file_info(image).gs_object_name.split('/')[-1]

            upload_settings
= settings.get("upload")

            url
=  upload_settings["url"]

            bucket
= upload_settings["bucket"]

           
#send to the cloud

           
#write a task to execute this?

            item
.image_url  =  url % (bucket, object_name)

           
#gcs_file= gcs.open("/".join(["", bucket, object_name]),  

               
# 'w', content_type="image/jpeg",  

               
#options={'x-goog-acl': 'public-read'} )  

           
#gcs_file.write(item.image)#.file.encode('utf-8')) #

           
#gcs_file.close()

           
return

       
self.events.scaffold_before_save += before_save_callback

       
return scaffold.add(self)


Reply all
Reply to author
Forward
0 new messages