More tolerant i18n deserializing

This commit is contained in:
Raphael Michel
2018-11-23 16:15:23 +01:00
parent 563decdfba
commit 8127c32ef5

View File

@@ -15,13 +15,20 @@ class I18nField(Field):
super().__init__(**kwargs) super().__init__(**kwargs)
def to_representation(self, value): def to_representation(self, value):
if value is None or value.data is None: if hasattr(value, 'data'):
if isinstance(value.data, dict):
return value.data
elif value.data is None:
return None
else:
return {
settings.LANGUAGE_CODE: str(value.data)
}
elif value is None:
return None return None
if isinstance(value.data, dict):
return value.data
else: else:
return { return {
settings.LANGUAGE_CODE: str(value.data) settings.LANGUAGE_CODE: str(value)
} }
def to_internal_value(self, data): def to_internal_value(self, data):