gault-millau/apps/establishment/management/commands/add_establishment_social.py
2019-11-01 10:48:46 +03:00

57 lines
2.2 KiB
Python

from django.core.management.base import BaseCommand
from establishment.models import Establishment, SocialNetwork
from transfer.models import EstablishmentInfos
class Command(BaseCommand):
help = 'Add social links values from old db to new db'
def handle(self, *args, **kwargs):
count = 0
queryset = EstablishmentInfos.objects.exclude(
establishment_id__isnull=True
).values_list('id', 'establishment_id', 'facebook', 'twitter', 'instagram')
for id, es_id, facebook, twitter, instagram in queryset:
try:
establishment = Establishment.objects.get(old_id=es_id)
except Establishment.DoesNotExist:
continue
except Establishment.MultipleObjectsReturned:
establishment = Establishment.objects.filter(old_id=es_id).first()
else:
if facebook:
if 'facebook.com/' not in facebook:
facebook = 'https://www.facebook.com/' + facebook
obj, _ = SocialNetwork.objects.get_or_create(
old_id=id,
establishment=establishment,
title='facebook',
url=facebook,
)
count += 1
if twitter:
if 'twitter.com/' not in twitter:
twitter = 'https://www.twitter.com/' + twitter
obj, _ = SocialNetwork.objects.get_or_create(
old_id=id,
establishment=establishment,
title='twitter',
url=twitter,
)
count += 1
if instagram:
if 'instagram.com/' not in instagram:
instagram = 'https://www.instagram.com/' + instagram
obj, _ = SocialNetwork.objects.get_or_create(
old_id=id,
establishment=establishment,
title='instagram',
url=instagram,
)
count += 1
self.stdout.write(self.style.WARNING(f'Created/updated {count} objects.'))