mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 04:50:12 +03:00
Merge 246cd5455f
into 65a0d083d6
This commit is contained in:
commit
134035b91e
|
@ -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)
|
||||||
|
|
|
@ -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():
|
||||||
|
|
Loading…
Reference in New Issue
Block a user