From b6e4b8d34e410080a4c65e0ca0245a4a5d9a9662 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 14 Jun 2017 13:07:05 +0200 Subject: v2 to v3 dump: exclude some entry with empty field --- chimere/management/commands/v3_to_v2_markers.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/chimere/management/commands/v3_to_v2_markers.py b/chimere/management/commands/v3_to_v2_markers.py index e91e6c7..d84e239 100644 --- a/chimere/management/commands/v3_to_v2_markers.py +++ b/chimere/management/commands/v3_to_v2_markers.py @@ -5,13 +5,15 @@ from django.core.management import call_command from django.core.management.base import BaseCommand -def get_data(model_name, filters=tuple()): +def get_data(model_name, filters=tuple(), exclude_empty=tuple()): out = StringIO() call_command('dumpdata', 'chimere.' + model_name, stdout=out) values = json.loads(out.getvalue()) result = [] for value in values: data = value.copy() + if [exc for exc in exclude_empty if not data["fields"][exc]]: + continue for attr in filters: data["fields"].pop(attr) result.append(data) @@ -27,8 +29,10 @@ class Command(BaseCommand): filters=('weight', 'normalised_weight')) new_markers += get_data('Marker_categories') new_markers += get_data('Property', filters=('route', 'polygon')) - new_markers += get_data('PictureFile', filters=('route', 'polygon')) - new_markers += get_data('MultimediaFile', filters=('route', 'polygon')) + new_markers += get_data('PictureFile', filters=('route', 'polygon'), + exclude_empty=('marker',)) + new_markers += get_data('MultimediaFile', filters=('route', 'polygon'), + exclude_empty=('marker',)) res = json.dumps(new_markers) self.stdout.write(res) -- cgit v1.2.3