#python #django #django-views #django-import-export
Вопрос:
Я не могу понять, как правильно добавить попытку, кроме блока в этом представлении django-импорт-экспорт. Моя цель-выявить и отобразить конкретные ошибки, которые могут возникнуть во время импорта. Я считаю, что блок «попробовать, кроме» может помочь, но я не знаю, как его реализовать в этом представлении.
class upload(LoginRequiredMixin,View):
context = {}
def post(self, request):
form = UploadForm(request.POST , request.FILES)
data_set = Dataset()
if form.is_valid():
file = request.FILES['file']
extension = file.name.split(".")[-1].lower()
if extension == 'csv':
data = data_set.load(file.read().decode('utf-8'), format=extension)
else:
data = data_set.load(file.read(), format=extension)
resource = ImportResource()
result = resource.import_data(data_set, dry_run=True, collect_failed_rows=True, raise_errors=True)
if result.has_validation_errors() or result.has_errors():
messages.success(request,result.invalid_rows)
self.context['result'] = result
return redirect('/')
else:
result = resource.import_data(data_set, dry_run=False, raise_errors=False)
self.context['result'] = None
messages.success(request,f'Successfully.')
else:
self.context['form'] = UploadForm()
return render(request, 'home.html', self.context)