From 91ff448b8878d863d1f75a961a4746baa20eb324 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 12 Apr 2016 16:16:46 +0200 Subject: [PATCH] initialize document_type in FileField.__setstate__ --- wcs/fields.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wcs/fields.py b/wcs/fields.py index c83a813..b7bdc69 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -726,12 +726,12 @@ class FileField(WidgetField): @property def file_type(self): - return (self.document_type or {}).get('mimetypes', []) + return self.document_type.get('mimetypes', []) def fill_admin_form(self, form): WidgetField.fill_admin_form(self, form) document_types = self.get_document_types() - cur_dt = self.document_type or {} + cur_dt = self.document_type # SingleSelectWidget compare the value and not the keys, so if we want # the current value not to be hidden, we must reset it with the corresponding # value from settings based on the 'id' @@ -824,7 +824,7 @@ class FileField(WidgetField): for key, document_type in document_types.iteritems(): document_type['id'] = key # add current file type if it does not exist anymore in the settings - cur_dt = self.document_type or {} + cur_dt = self.document_type if cur_dt and cur_dt['id'] not in document_types: document_types[cur_dt['id']] = cur_dt return document_types @@ -890,6 +890,10 @@ class FileField(WidgetField): value = data.get(field_id) return getattr(value, 'metadata', {}) + def __setstate__(self, state): + self.__dict__ = state + self.document_type = self.document_type or {} + register_field_class(FileField) -- 2.1.4