diff options
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/fields.py | 2 | ||||
| -rw-r--r-- | rest_framework/utils/field_mapping.py | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 0963d4bf..9d577c53 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -224,6 +224,8 @@ class Field(object): """ if self.default is empty: raise SkipField() + if is_simple_callable(self.default): + return self.default() return self.default def run_validation(self, data=empty): diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index 30fae370..fd6da699 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -219,6 +219,9 @@ def get_relation_kwargs(field_name, relation_info): kwargs['required'] = False if model_field.null: kwargs['allow_null'] = True + if getattr(model_field, 'unique', False): + validator = UniqueValidator(queryset=model_field.model._default_manager) + kwargs['validators'] = [validator] return kwargs |
