This commit is contained in:
kakulukia 2014-10-31 19:02:43 +00:00
commit 134035b91e
2 changed files with 14 additions and 2 deletions

View File

@ -260,6 +260,7 @@ class WritableField(Field):
default_error_messages = { default_error_messages = {
'required': _('This field is required.'), 'required': _('This field is required.'),
'invalid': _('Invalid value.'), 'invalid': _('Invalid value.'),
'invalid_data': _('Invalid data.'),
} }
widget = widgets.TextInput widget = widgets.TextInput
default = None default = None
@ -951,6 +952,7 @@ class FileField(WritableField):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.max_length = kwargs.pop('max_length', None) self.max_length = kwargs.pop('max_length', None)
self.allow_empty_file = kwargs.pop('allow_empty_file', False) self.allow_empty_file = kwargs.pop('allow_empty_file', False)
self.show_url = kwargs.pop('show_url', False)
super(FileField, self).__init__(*args, **kwargs) super(FileField, self).__init__(*args, **kwargs)
def from_native(self, data): def from_native(self, data):
@ -975,6 +977,8 @@ class FileField(WritableField):
return data return data
def to_native(self, value): def to_native(self, value):
if value and self.show_url:
return value.url
return value.name return value.name
@ -989,6 +993,9 @@ class ImageField(FileField):
"either not an image or a corrupted image."), "either not an image or a corrupted image."),
} }
def __init__(self, *args, **kwargs):
super(ImageField, self).__init__(*args, **kwargs)
def from_native(self, data): def from_native(self, data):
""" """
Checks that the file-upload field data contains a valid image (GIF, JPG, Checks that the file-upload field data contains a valid image (GIF, JPG,
@ -1038,5 +1045,10 @@ class SerializerMethodField(Field):
super(SerializerMethodField, self).__init__(*args, **kwargs) super(SerializerMethodField, self).__init__(*args, **kwargs)
def field_to_native(self, obj, field_name): def field_to_native(self, obj, field_name):
value = getattr(self.parent, self.method_name)(obj) if hasattr(self.parent, self.method_name):
method = getattr(self.parent, self.method_name)
value = method(obj)
else:
method = getattr(obj, self.method_name)
value = method()
return self.to_native(value) return self.to_native(value)

View File

@ -278,7 +278,7 @@ class BaseSerializer(WritableField):
reverted_data = {} reverted_data = {}
if data is not None and not isinstance(data, dict): if data is not None and not isinstance(data, dict):
self._errors['non_field_errors'] = ['Invalid data'] self._errors['non_field_errors'] = [self.error_messages['invalid_data']]
return None return None
for field_name, field in self.fields.items(): for field_name, field in self.fields.items():