diff options
| author | Anton Shutik | 2014-02-27 18:34:36 +0300 |
|---|---|---|
| committer | Anton Shutik | 2014-02-27 18:34:36 +0300 |
| commit | 1addd09e2b0e26507aada864123f610ead62d8da (patch) | |
| tree | fd7fbeea4220d752b9811bbf5c5c0714a5716735 /rest_framework/fields.py | |
| parent | 6e92e415aa7dd6871ef7d6500a85cacebde8dca2 (diff) | |
| download | django-rest-framework-1addd09e2b0e26507aada864123f610ead62d8da.tar.bz2 | |
RelatedField default value handling fixed
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 05daaab7..68b95682 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -301,6 +301,11 @@ class WritableField(Field): result.validators = self.validators[:] return result + def get_default_value(self): + if is_simple_callable(self.default): + return self.default() + return self.default + def validate(self, value): if value in validators.EMPTY_VALUES and self.required: raise ValidationError(self.error_messages['required']) @@ -349,10 +354,7 @@ class WritableField(Field): except KeyError: if self.default is not None and not self.partial: # Note: partial updates shouldn't set defaults - if is_simple_callable(self.default): - native = self.default() - else: - native = self.default + native = self.get_default_value() else: if self.required: raise ValidationError(self.error_messages['required']) |
