diff options
| author | Tom Christie | 2012-12-08 13:00:49 +0000 | 
|---|---|---|
| committer | Tom Christie | 2012-12-08 13:00:49 +0000 | 
| commit | ac2720afcba7be5e937b5f0360a470701861baaa (patch) | |
| tree | 78336536247f418c8058b97ed4f0b65f7def8cfe | |
| parent | 733f03fba35cb13ad53723b0b15d439e40da32ad (diff) | |
| download | django-rest-framework-ac2720afcba7be5e937b5f0360a470701861baaa.tar.bz2 | |
Add null related field option
| -rw-r--r-- | rest_framework/fields.py | 5 | ||||
| -rw-r--r-- | rest_framework/serializers.py | 4 | 
2 files changed, 5 insertions, 4 deletions
| diff --git a/rest_framework/fields.py b/rest_framework/fields.py index c5726ff0..285ec9be 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -269,6 +269,7 @@ class RelatedField(WritableField):      def __init__(self, *args, **kwargs):          self.queryset = kwargs.pop('queryset', None) +        self.null = kwargs.pop('null', False)          super(RelatedField, self).__init__(*args, **kwargs)          self.read_only = kwargs.pop('read_only', self.default_read_only) @@ -351,9 +352,9 @@ class RelatedField(WritableField):          value = data.get(field_name) -        if value in (None, '') and not self.blank: +        if value in (None, '') and not self.null:              raise ValidationError('Value may not be null') -        elif value in (None, '') and self.blank: +        elif value in (None, '') and self.null:              into[(self.source or field_name)] = None          else:              into[(self.source or field_name)] = self.from_native(value) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 13c41a4b..7eab9860 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -432,7 +432,7 @@ class ModelSerializer(Serializer):          # TODO: filter queryset using:          # .using(db).complex_filter(self.rel.limit_choices_to)          kwargs = { -            'blank': model_field.blank, +            'null': model_field.null,              'queryset': model_field.rel.to._default_manager          } @@ -577,7 +577,7 @@ class HyperlinkedModelSerializer(ModelSerializer):          # .using(db).complex_filter(self.rel.limit_choices_to)          rel = model_field.rel.to          kwargs = { -            'blank': model_field.blank, +            'null': model_field.null,              'queryset': rel._default_manager,              'view_name': self._get_default_view_name(rel)          } | 
