from django.core.management.base import BaseCommand import ox from ... import models class Command(BaseCommand): help = 'import titles from pan.do/ra' def add_arguments(self, parser): parser.add_argument("--api", dest="api", type=str, default='https://pad.ma/api/'), parser.add_argument("--group", dest="group", type=str, default='Asian Art Biennial 2021'), def handle(self, *args, **options): api = ox.api.signin(options['api']) query = { 'query': { 'conditions': [{'key': 'groups', 'value': options['group'], 'operator': '=='}] }, 'keys': [ 'id', 'title', 'director', 'summary', 'source', 'sourcedescription', 'date', 'location', 'duration', 'featuring', 'cinematographer', 'hue', 'saturation', 'lightness', ], 'range': [0, 1000] } for item in api.find(**query)['data']['items']: print(item) f, c = models.Film.objects.get_or_create(padma_id=item['id']) for key, value in item.items(): if key == 'title': f.data['title'], f.data['title_zh'] = value.split(' / ', 1) elif key == 'summary': f.data['summary'], f.data['summary_zh'] = value.split('

', 1) elif key == 'sourcedescription': if '

' in value: f.data['bio'], f.data['bio_zh'] = value.split('

', 1) else: f.data['bio'] = f.data['bio_zh'] = value elif key != 'id': f.data[{ }.get(key, key)] = value if c: f.public = True f.slug = item['id'] f.save()