# Generated by Django 2.2.10 on 2021-02-24 15:29 from django.core.exceptions import ObjectDoesNotExist from django.db import migrations, models def migrate_forward(apps, schema_editor): Organisation = apps.get_model('people', 'Organisation') fields = { 'latitude', 'longitude', } for obj in Organisation.objects.all(): try: answer_set = obj.answer_sets.last() if answer_set is None: raise ObjectDoesNotExist except ObjectDoesNotExist: answer_set = obj.answer_sets.create() for field in fields: value = getattr(obj, field) try: setattr(answer_set, field, value) except TypeError: # Cannot directly set an m2m field m2m = getattr(answer_set, field) m2m.set(value.all()) answer_set.save() def migrate_backward(apps, schema_editor): Organisation = apps.get_model('people', 'Organisation') fields = { 'latitude', 'longitude', } for obj in Organisation.objects.all(): try: answer_set = obj.answer_sets.last() for field in fields: value = getattr(answer_set, field) try: setattr(obj, field, value) except TypeError: # Cannot directly set an m2m field m2m = getattr(obj, field) m2m.set(value.all()) obj.save() except ObjectDoesNotExist: pass class Migration(migrations.Migration): dependencies = [ ('people', '0035_add_organisation_questions'), ] operations = [ migrations.AddField( model_name='organisationanswerset', name='latitude', field=models.FloatField(blank=True, null=True), ), migrations.AddField( model_name='organisationanswerset', name='longitude', field=models.FloatField(blank=True, null=True), ), migrations.RunPython(migrate_forward, migrate_backward), migrations.RemoveField( model_name='organisation', name='latitude', ), migrations.RemoveField( model_name='organisation', name='longitude', ), ]