You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

import_images.py 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import logging
  2. import sys
  3. import os
  4. from optparse import make_option
  5. from django.core.management.base import BaseCommand, CommandError
  6. from oscar.core.loading import import_module
  7. import_module('catalogue.utils', ['Importer'], locals())
  8. class Command(BaseCommand):
  9. args = '/path/to/folder'
  10. help = 'For importing product images from a folder'
  11. option_list = BaseCommand.option_list + (
  12. make_option('--filename',
  13. dest='filename',
  14. default='upc',
  15. help='Product field to lookup from image filename'),
  16. )
  17. def handle(self, *args, **options):
  18. if len(args) != 1:
  19. raise CommandError('Command requires a path to a single folder')
  20. logger = self._get_logger()
  21. logger.info("Starting image import...")
  22. dirname = args[0]
  23. importer = Importer(logger, field=options.get('filename'))
  24. importer.handle(dirname)
  25. def _get_logger(self):
  26. logger = logging.getLogger('oscar.apps.image')
  27. stream = logging.StreamHandler(self.stdout)
  28. logger.addHandler(stream)
  29. logger.setLevel(logging.DEBUG)
  30. return logger