Exemplo n.º 1
0
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})
Exemplo n.º 2
0
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})