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' ], '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 != 'id': f.data[{ 'sourcedescription': 'bio' }.get(key, key)] = value f.public = True f.slug = item['id'] f.save()