gault-millau/apps/establishment/management/commands/add_establishment_image.py
2019-11-02 14:31:12 +03:00

35 lines
1.5 KiB
Python

from django.core.management.base import BaseCommand
from establishment.models import Establishment
from transfer.models import EstablishmentAssets
class Command(BaseCommand):
help = 'Add preview_image_url values from old db to new db'
def handle(self, *args, **kwargs):
count = 0
url = 'https://1dc3f33f6d-3.optimicdn.com/gaultmillau.com/'
raw_qs = EstablishmentAssets.objects.raw(
'''SELECT establishment_assets.id, establishment_id, attachment_suffix_url
FROM establishment_assets
WHERE attachment_file_name IS NOT NULL
AND attachment_suffix_url IS NOT NULL
AND scope = 'public'
AND type = 'Photo'
AND menu_id IS NULL
GROUP BY establishment_assets.id, establishment_id, attachment_suffix_url;'''
)
queryset = [vars(query) for query in raw_qs]
for obj in queryset:
establishment = Establishment.objects.filter(old_id=obj['establishment_id'], image_url__isnull=True).first()
if establishment:
img = url + obj['attachment_suffix_url']
img_url = img[:-12]
extension = img.split('.')[-1:][0] # JPG
establishment.preview_image_url = f'{img_url}xlarge.{extension}'
establishment.image_url = img
establishment.save()
count += 1
self.stdout.write(self.style.WARNING(f'Updated {count} objects.'))