def import_(request): if request.method == 'POST': import_form = ImportForm(request.POST.copy(), request.FILES) if import_form.is_valid(): try: row_num = 1 row_errors = None with transaction.atomic(): for row in csv.reader(import_form.cleaned_data['file']): row_num += 1 dict_ = dict(zip(EXPORT_FIELD_NAMES, row)) form = ImportRowForm(dict_) if not form.is_valid(): row_errors = form.errors raise ValidationError(None) d = form.cleaned_data account_group = AccountGroup( name=d['name'], info=d['info']) account_group.save() except Exception: logger.exception(None) return render(request, 'accountgroup/import.html', {'form': import_form, 'row_errors': row_errors, 'row_num': row_num}) return render( request, 'accountgroup/complete.html', {'message': u'アカウントグループをインポートしました。'}) else: import_form = ImportForm() return render(request, 'accountgroup/import.html', {'form': import_form})
def create(request): accounts = Account.objects.all() if request.method == 'POST': query = request.POST.copy() form = EditForm(query) if form.is_valid(): try: with transaction.atomic(): d = form.cleaned_data account_group = AccountGroup( name=d['name'], info=d['info']) account_group.save() except Exception: logger.exception(None) raise return render(request, 'accountgroup/complete.html', {'message': u'アカウントグループを追加しました。'}) else: form = EditForm() return render(request, 'accountgroup/edit.html', {'accounts': accounts, 'edit_type': 'create', 'form': form})