class UploadForm(forms.Form): file = forms.Field(widget=forms.FileInput, required=True, label=_("File"), help_text=_("Upload an image (max %s kilobytes)" % settings.MAX_PHOTO_UPLOAD_SIZE)) title = forms.CharField(max_length=100, required=True, label=_("Title")) description = forms.Field(widget=forms.Textarea, required=False, label=_("Description")) license = forms.ChoiceField(choices=LICENSES) tags = TagField() def upload(request): error_msg='' if request.POST: f = UploadForm(request.POST) if f.is_valid(): filename = f.cleaned_data['file'] h=hashlib.sha1() h.update(smart_str(filename)) params= { 'file' : f.cleaned_data['file'], 'title': f.cleaned_data['title'], 'description': f.cleaned_data['description'], 'license': f.cleaned_data['license'], 'tags': f.cleaned_data['tags'], 'file_key': h.hexdigest() } m = MediaItem(**params) m.save() else: error_msg='Please correct the error(s) bellow' else: f = UploadForm() c = RequestContext(request, { 'form': f, 'error_msg': error_msg, }) t = loader.get_template('mediabrowser/upload.html') return HttpResponse(t.render(c))