class NewPackagedForm(NewPackagedAppForm): upload = JSONField() def clean_upload(self): self.cleaned_data['upload'] = parse(self.cleaned_data.get( 'upload', {}), require_name=True, require_type='application/zip') return super(NewPackagedForm, self).clean_upload()
class FileJSONForm(happyforms.Form): file = JSONField(required=True) def clean_file(self): file_ = self.cleaned_data.get('file', {}) file_obj = parse(file_) errors, hash_ = check_upload(file_obj, self.upload_type, file_['type']) if errors: raise forms.ValidationError(errors) self.hash_ = hash_ return file_ def clean(self): self.cleaned_data[self.hash_name] = getattr(self, 'hash_', None) return self.cleaned_data
class PreviewJSONForm(happyforms.Form): file = JSONField(required=True) position = forms.IntegerField(required=True) def clean_file(self): file_ = self.cleaned_data.get('file', {}) file_obj = parse(file_) errors, hash_ = check_upload(file_obj, 'preview', file_['type']) if errors: raise forms.ValidationError(errors) self.hash_ = hash_ return file_ def clean(self): self.cleaned_data['upload_hash'] = getattr(self, 'hash_', None) return self.cleaned_data