Skip to content

Instantly share code, notes, and snippets.

@georgewhewell
Created August 14, 2014 09:04
Show Gist options
  • Save georgewhewell/af7644a208cedc0f69f4 to your computer and use it in GitHub Desktop.
Save georgewhewell/af7644a208cedc0f69f4 to your computer and use it in GitHub Desktop.
import cgi
from google.appengine.ext import blobstore
from django.contrib import admin
from django import forms
from .models import FileDownload
class DLAdminForm(forms.ModelForm):
class Meta:
model = FileDownload
widgets = {
'file_blobinfo': forms.FileInput(),
}
class DownloadAdmin(admin.ModelAdmin):
form = DLAdminForm
def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None):
upload_url = blobstore.create_upload_url(request.get_full_path())
return super(DownloadAdmin, self).render_change_form(request, context, add=False, change=False, form_url=upload_url, obj=None)
def save_model(self, request, obj, form, change):
meta = request.META
meta['wsgi.input'].seek(0)
fields = cgi.FieldStorage(meta['wsgi.input'], environ=meta)
blobkey = fields['file_blobinfo'].type_options['blob-key']
obj.file_blobinfo = blobkey
obj.file_name = fields['file_blobinfo'].filename
obj.save()
admin.site.register(FileDownload, DownloadAdmin)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment