from pprint import pprint from transfer.models import Establishments from transfer.serializers.establishment import EstablishmentSerializer def transfer_establishment(): result = [] old_establishments = Establishments.objects.all().prefetch_related('establishmentinfos_set', 'schedules_set') for item in old_establishments: data = { 'name': item.name, 'slug': item.slug, 'type': item.type, 'location': item.location.id, 'schedules': [], } info = item.establishmentinfos_set.first() if info: data.update({ 'website': info.website, 'facebook': info.facebook, 'twitter': info.twitter, 'lafourchette': info.lafourchette, 'booking': info.booking_url, }) for schedule in item.schedules_set.all(): data['schedules'].append({ 'raw_timetable': schedule.timetable }) result.append(data) print('-' * 30) print(len(result)) pprint(result[0]) # serialized_data = EstablishmentSerializer(data=result, many=True) # if serialized_data.is_valid(): # serialized_data.save() # else: # pprint(f"Establishment serializer errors: {serialized_data.errors}") data_types = { "establishment": [transfer_establishment] }