mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
Add null related field option
This commit is contained in:
parent
733f03fba3
commit
ac2720afcb
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user