diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2006-11-07 04:50:13 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2006-11-07 04:50:13 +0000 |
| commit | e39a8e947e5209533657405568992213e87bd532 (patch) | |
| tree | 6b35aeec195aba98a3ec2812ed382f8518b54564 | |
| parent | d4d1a22730eecd207d0e656161d24a52284112bf (diff) | |
Fixed #2701: Added "fields" argument to serializers.serialize. Thanks, Deryck.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@4042 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/core/serializers/base.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/django/core/serializers/base.py b/django/core/serializers/base.py index fb293c7c13..5b0acdc480 100644 --- a/django/core/serializers/base.py +++ b/django/core/serializers/base.py @@ -28,6 +28,7 @@ class Serializer(object): self.options = options self.stream = options.get("stream", StringIO()) + self.selected_fields = options.get("fields") self.start_serialization() for obj in queryset: @@ -36,11 +37,14 @@ class Serializer(object): if field is obj._meta.pk: continue elif field.rel is None: - self.handle_field(obj, field) + if self.selected_fields is None or field.attname in self.selected_fields: + self.handle_field(obj, field) else: - self.handle_fk_field(obj, field) + if self.selected_fields is None or field.attname[:-3] in self.selected_fields: + self.handle_fk_field(obj, field) for field in obj._meta.many_to_many: - self.handle_m2m_field(obj, field) + if self.selected_fields is None or field.attname in self.selected_fields: + self.handle_m2m_field(obj, field) self.end_object(obj) self.end_serialization() return self.getvalue() |
