mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-17 19:52:25 +03:00
Handle html empty value for many relation
This commit is contained in:
parent
337ba211e8
commit
d7ea7ba591
|
@ -142,7 +142,8 @@ class RelatedField(Field):
|
||||||
kwargs['child'] = cls()
|
kwargs['child'] = cls()
|
||||||
return CustomManyRelatedField(*args, **kwargs)
|
return CustomManyRelatedField(*args, **kwargs)
|
||||||
"""
|
"""
|
||||||
list_kwargs = {'child_relation': cls(*args, **kwargs)}
|
html_empty_value = kwargs.pop('html_empty_value', None)
|
||||||
|
list_kwargs = {'child_relation': cls(*args, **kwargs), 'html_empty_value': html_empty_value}
|
||||||
for key in kwargs:
|
for key in kwargs:
|
||||||
if key in MANY_RELATION_KWARGS:
|
if key in MANY_RELATION_KWARGS:
|
||||||
list_kwargs[key] = kwargs[key]
|
list_kwargs[key] = kwargs[key]
|
||||||
|
@ -492,6 +493,7 @@ class ManyRelatedField(Field):
|
||||||
def __init__(self, child_relation=None, *args, **kwargs):
|
def __init__(self, child_relation=None, *args, **kwargs):
|
||||||
self.child_relation = child_relation
|
self.child_relation = child_relation
|
||||||
self.allow_empty = kwargs.pop('allow_empty', True)
|
self.allow_empty = kwargs.pop('allow_empty', True)
|
||||||
|
self.html_empty_value = kwargs.pop('html_empty_value', None)
|
||||||
|
|
||||||
cutoff_from_settings = api_settings.HTML_SELECT_CUTOFF
|
cutoff_from_settings = api_settings.HTML_SELECT_CUTOFF
|
||||||
if cutoff_from_settings is not None:
|
if cutoff_from_settings is not None:
|
||||||
|
@ -514,7 +516,10 @@ class ManyRelatedField(Field):
|
||||||
if self.field_name not in dictionary:
|
if self.field_name not in dictionary:
|
||||||
if getattr(self.root, 'partial', False):
|
if getattr(self.root, 'partial', False):
|
||||||
return empty
|
return empty
|
||||||
return dictionary.getlist(self.field_name)
|
data = dictionary.getlist(self.field_name)
|
||||||
|
if self.html_empty_value is not None:
|
||||||
|
data = [item for item in data if item != self.html_empty_value]
|
||||||
|
return data
|
||||||
|
|
||||||
return dictionary.get(self.field_name, empty)
|
return dictionary.get(self.field_name, empty)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user