From: Guillaume Pellerin Date: Mon, 9 Sep 2019 10:35:30 +0000 (+0200) Subject: Fix collection ZIP serializer (fix: #165) X-Git-Tag: 1.7.4~5^2~6 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=a89d6244465997a992ae1b7f0f25addaa00a6de2;p=telemeta.git Fix collection ZIP serializer (fix: #165) --- diff --git a/telemeta/models/collection.py b/telemeta/models/collection.py index 0adbceb2..a8203bf9 100644 --- a/telemeta/models/collection.py +++ b/telemeta/models/collection.py @@ -28,6 +28,7 @@ from telemeta.models.core import * from telemeta.models.query import * from telemeta.models.identifier import * from telemeta.models.resource import * +from telemeta.models.enum import * # Special code regex of collections for the branch collection_published_code_regex = getattr(settings, 'COLLECTION_PUBLISHED_CODE_REGEX', '[A-Za-z0-9._-]*') @@ -257,7 +258,8 @@ class MediaCollection(MediaResource): def get_json(self): import json - return json.dumps(self.to_dict_with_more()) + data = self.to_dict_with_more() + return json.dumps(data) def to_row(self, tags): row = [] diff --git a/telemeta/models/core.py b/telemeta/models/core.py index 607cec0b..12142c67 100644 --- a/telemeta/models/core.py +++ b/telemeta/models/core.py @@ -125,7 +125,8 @@ class ModelCore(models.Model, DirtyFieldsMixin): "Return model fields as a dict of name/value pairs" fields_dict = {} for field in self._meta.fields: - fields_dict[field.name] = getattr(self, field.name) + data = unicode(getattr(self, field.name)) + fields_dict[field.name] = data return fields_dict def to_list(self): diff --git a/telemeta/views/collection.py b/telemeta/views/collection.py index fca2705b..0fd46e95 100644 --- a/telemeta/views/collection.py +++ b/telemeta/views/collection.py @@ -170,6 +170,7 @@ class CollectionZipView(View): without loading the whole file into memory. Based on ZipStream """ + from django.http import HttpResponse, StreamingHttpResponse from telemeta.views import MarkerView from telemeta.backup import CollectionSerializer import zipstream @@ -461,4 +462,4 @@ class CollectionSoundEnumListView(CollectionEnumListView): def get_coll(self, enum,c): return c.get_coll(enum).sound().order_by('code', 'old_code') - +