This commit is contained in:
orf 2017-07-10 12:42:10 +00:00 committed by GitHub
commit dba07b4da0

View File

@ -501,11 +501,20 @@ class ManyRelatedField(Field):
if not self.allow_empty and len(data) == 0: if not self.allow_empty and len(data) == 0:
self.fail('empty') self.fail('empty')
return [ if isinstance(self.child_relation, PrimaryKeyRelatedField):
values = list(self.child_relation.get_queryset().filter(pk__in=data))
missing_primary_keys = set(v.pk for v in values) - set(data)
if missing_primary_keys:
self.fail('missing_ids', ids_not_found=list(missing_primary_keys))
else:
values = [
self.child_relation.to_internal_value(item) self.child_relation.to_internal_value(item)
for item in data for item in data
] ]
return values
def get_attribute(self, instance): def get_attribute(self, instance):
# Can't have any relationships if not created # Can't have any relationships if not created
if hasattr(instance, 'pk') and instance.pk is None: if hasattr(instance, 'pk') and instance.pk is None: