mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-25 23:50:01 +03:00
add QuerySet case in ListSerializer.to_representation method
This commit is contained in:
parent
54d52c66fd
commit
d74d206bc4
|
@ -679,9 +679,18 @@ class ListSerializer(BaseSerializer):
|
|||
"""
|
||||
List of object instances -> List of dicts of primitive datatypes.
|
||||
"""
|
||||
# Dealing with nested relationships, data can be a Manager,
|
||||
# so, first get a queryset from the Manager if needed
|
||||
iterable = data.all() if isinstance(data, models.Manager) else data
|
||||
|
||||
# check for additional instance attributes
|
||||
reload_queryset_class = (models.Manager,)
|
||||
if isinstance(data, models.QuerySet):
|
||||
for qs_first in data:
|
||||
if qs_first.__class__().__dict__.keys() == qs_first.__dict__.keys():
|
||||
reload_queryset_class.append(models.QuerySet)
|
||||
break
|
||||
|
||||
# Dealing with nested relationships, data can be a Manager or a QuerySet,
|
||||
# so, first get a queryset from the Manager/QuerySet if needed
|
||||
iterable = data.all() if isinstance(data, reload_queryset_class) else data
|
||||
|
||||
return [
|
||||
self.child.to_representation(item) for item in iterable
|
||||
|
|
Loading…
Reference in New Issue
Block a user