diff options
| author | Tom Christie | 2014-09-11 20:37:27 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-09-11 20:37:27 +0100 |
| commit | bf52d04f4c370d6917599d26c84b73124d5ef366 (patch) | |
| tree | 4c1b658d796a1f9cf1291501ea202ae02f663681 /rest_framework | |
| parent | ab40780dc2f341a271c2f489659dcd48eb47c07d (diff) | |
| download | django-rest-framework-bf52d04f4c370d6917599d26c84b73124d5ef366.tar.bz2 | |
Nice manager representations on serializer classes
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/utils/representation.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/rest_framework/utils/representation.py b/rest_framework/utils/representation.py index 1a4d1a62..71db1886 100644 --- a/rest_framework/utils/representation.py +++ b/rest_framework/utils/representation.py @@ -2,10 +2,23 @@ Helper functions for creating user-friendly representations of serializer classes and serializer fields. """ +from django.db import models import re +def manager_repr(value): + model = value.model + opts = model._meta + for _, name, manager in opts.concrete_managers + opts.abstract_managers: + if manager == value: + return '%s.%s.all()' % (model._meta.object_name, name) + return repr(value) + + def smart_repr(value): + if isinstance(value, models.Manager): + return manager_repr(value) + value = repr(value) # Representations like u'help text' |
