1
0
mirror of https://github.com/django/django.git synced 2025-10-26 15:16:09 +00:00

Refs #24227 -- Removed ManyToManyField special casing in model_to_dict().

This commit is contained in:
Tim Graham
2016-05-11 10:12:59 -04:00
parent 8f6a1a1551
commit 67d984413c
2 changed files with 5 additions and 16 deletions

View File

@@ -88,21 +88,7 @@ def model_to_dict(instance, fields=None, exclude=None):
continue
if exclude and f.name in exclude:
continue
if f.many_to_many:
# If the object doesn't have a primary key yet, just use an empty
# list for its m2m fields. Calling f.value_from_object will raise
# an exception.
if instance.pk is None:
data[f.name] = []
else:
# MultipleChoiceWidget needs a list of pks, not object instances.
qs = f.value_from_object(instance)
if qs._result_cache is not None:
data[f.name] = [item.pk for item in qs]
else:
data[f.name] = list(qs.values_list('pk', flat=True))
else:
data[f.name] = f.value_from_object(instance)
data[f.name] = f.value_from_object(instance)
return data