diff --git a/src/mmw/apps/modeling/migrations/0023_fix_gis_data_serialization.py b/src/mmw/apps/modeling/migrations/0023_fix_gis_data_serialization.py new file mode 100644 index 000000000..d55bf180e --- /dev/null +++ b/src/mmw/apps/modeling/migrations/0023_fix_gis_data_serialization.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import ast +import json + +from django.db import migrations + + +def fix_gis_data_serialization(apps, schema_editor): + Project = apps.get_model('modeling', 'Project') + for project in Project.objects.filter(gis_data__startswith='{u'): + project.gis_data = json.dumps(ast.literal_eval(project.gis_data)) + project.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('modeling', '0022_project_wkaoi'), + ] + + operations = [ + migrations.RunPython(fix_gis_data_serialization, + migrations.RunPython.noop) + ] diff --git a/src/mmw/apps/modeling/serializers.py b/src/mmw/apps/modeling/serializers.py index 010ba4190..8bcff85bf 100644 --- a/src/mmw/apps/modeling/serializers.py +++ b/src/mmw/apps/modeling/serializers.py @@ -40,7 +40,7 @@ class Meta: geo_field = 'area_of_interest' user = UserSerializer(default=serializers.CurrentUserDefault()) - gis_data = JsonField() + gis_data = JsonField(required=False, allow_null=True) scenarios = ScenarioSerializer(many=True, read_only=True) @@ -61,3 +61,4 @@ class Meta: user = UserSerializer(default=serializers.CurrentUserDefault(), read_only=True) + gis_data = JsonField(required=False, allow_null=True)