def validate(self, attrs):
attrs = super(BatchRequestSerializer, self).validate(attrs)
files_in_use = []
for batch in attrs['batch']:
if 'attached_files' not in batch:
continue
attached_files = batch['attached_files']
if isinstance(attached_files, dict):
files_in_use.extend(attached_files.values())
elif isinstance(attached_files, list):
files_in_use.extend(attached_files)
else:
raise ValidationError({'attached_files': 'Invalid format.'})
missing_files = set(files_in_use) - set(self.get_files().keys())
if missing_files:
raise ValidationError('Some of files are not provided: {}'.format(', '.join(missing_files)))
return attrs
评论列表
文章目录