def test_get_profile_configs(self): c = get_profile_configs('simple1') rc = dju_settings.DJU_IMG_UPLOAD_PROFILES['simple1'] self.assertEqual(c['PATH'], rc['PATH']) self.assertEqual(c['MAX_SIZE'], rc['MAX_SIZE']) self.assertEqual(len(c['VARIANTS']), len(rc['VARIANTS'])) for i in xrange(len(rc['VARIANTS'])): for k in rc['VARIANTS'][i]: self.assertEqual(rc['VARIANTS'][i][k], c['VARIANTS'][i][k]) self.assertEqual(get_profile_configs('default'), dju_settings.DJU_IMG_UPLOAD_PROFILE_DEFAULT) with self.assertRaises(ValueError): get_profile_configs('none')
def upload_image(request): """ Вюха, яка зберігає завантажений файл. Структура запиту: FILES images[]: файли зображеннь POST DATA profile: назва профілю (для визначення налаштувань збреження) (опціонально) label: додаток до назви файлу при збереженні (опціонально) Структура відповіді: Тип відповіді: JSON { 'uploaded': [ { 'url': 'повний url до головного файла', 'rel_url': 'відносний від MEDIA url головного файла', 'img_id': 'ідентифікатор для збереження в БД', // 'profilename:abcdef_abcd_label.png', 'variants': { 'variant label': { 'url': 'повний url до варіанта', 'rel_url': 'відносний від MEDIA url головного файла' }, ... } }, ... ], 'errors': ['error message', ...] } """ if request.method != 'POST': return HttpResponseNotAllowed(('POST',)) result = {'uploaded': [], 'errors': []} files = request.FILES.getlist('images[]') if not files: result['errors'].append(unicode(ERROR_MESSAGES['no_uploaded_files'])) return send_json(result) try: profile = request.POST.get('profile', 'default') conf = get_profile_configs(profile) except ValueError, e: result['errors'].append(unicode(e)) return send_json(result)
def upload_image(request): """ Вюха, яка зберігає завантажений файл. Структура запиту: FILES images[]: файли зображеннь POST DATA profile: назва профілю (для визначення налаштувань збреження) (опціонально) label: додаток до назви файлу при збереженні (опціонально) Структура відповіді: Тип відповіді: JSON { 'uploaded': [ { 'url': 'повний url до головного файла', 'rel_url': 'відносний від MEDIA url головного файла', 'img_id': 'ідентифікатор для збереження в БД', // 'profilename:abcdef_abcd_label.png', 'variants': { 'variant label': { 'url': 'повний url до варіанта', 'rel_url': 'відносний від MEDIA url головного файла' }, ... } }, ... ], 'errors': ['error message', ...] } """ if request.method != "POST": return HttpResponseNotAllowed(("POST",)) result = {"uploaded": [], "errors": []} files = request.FILES.getlist("images[]") if not files: result["errors"].append(unicode(ERROR_MESSAGES["no_uploaded_files"])) return send_json(result) try: profile = request.POST.get("profile", "default") conf = get_profile_configs(profile) except ValueError, e: result["errors"].append(unicode(e)) return send_json(result)