35 lines
1.5 KiB
Python
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.'))
|