def save(self, *args, **kwargs): # This is not having the intended effect if 'file' not in self._meta.fields: self._meta.fields.append('file') if self.cleaned_data['unzip_archive']: new_attachments = [] try: for zipinfo in self.zipfile.filelist: f = tempfile.NamedTemporaryFile(mode='r+w') f.write(self.zipfile.read(zipinfo.filename)) f = File(f, name=zipinfo.filename) try: attachment = models.Attachment() attachment.article = self.article attachment.original_filename = zipinfo.filename attachment.save() attachment.articles.add(self.article) attachment_revision = models.AttachmentRevision() attachment_revision.file = f attachment_revision.description = self.cleaned_data[ 'description'] attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() f.close() except models.IllegalFileExtension: raise new_attachments.append(attachment_revision) except zipfile.BadZipfile: raise return new_attachments else: return super(AttachmentArchiveForm, self).save(*args, **kwargs)
def _form_valid(form): try: attachment_revision = form.save(commit=False) attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() messages.success(self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) except models.IllegalFileExtension, e: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved: %s') % e)
def save(self, *args, **kwargs): attachment_revision = super(AttachmentForm, self).save(commit=False) # Added because of AttachmentArchiveForm removing file from fields # should be more elegant attachment_revision.file = self.cleaned_data['file'] attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() return attachment_revision
def save(self, *args, **kwargs): commit = kwargs.get("commit", True) attachment_revision = super().save(commit=False) # Added because of AttachmentArchiveForm removing file from fields # should be more elegant attachment_revision.file = self.cleaned_data["file"] if not self.attachment: attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() if commit: attachment.save() attachment.articles.add(self.article) else: attachment = self.attachment attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) if commit: attachment_revision.save() return attachment_revision
def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user)): return response_forbidden(self.request, self.article, self.urlpath) try: attachment_revision = form.save(commit=False) attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() messages.success( self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) except models.IllegalFileExtension, e: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved: %s') % e)