Обновление записи с помощью ModelForm - PullRequest
1 голос
/ 05 августа 2020

Я работаю над вызовом предварительно заполненной формы на основе ввода данных пользователем. Я хочу разрешить редактирование записи в полученной форме, а затем сохранить обновления в записи БД. Ниже показано создание новых записей, а не обновление существующих, и я застрял на следующих шагах.

   def mod_customer(request):
        params = json.loads(request.body)
        selection = params['cst_id']
        obj = AppCustomerCst.objects.get(id_cst=selection)
        instance = get_object_or_404(AppCustomerCst, id_cst=selection)
        form = CustomerMaintForm(request.POST or None, instance=instance)
        if '_edit' in request.POST:
            if form.is_valid():
                form.save()
                return redirect('customers')
    
        elif form.is_valid() and '_delete' in request.POST:
            # just for testing purposes. once mod is working, will update with delete
            # AppCustomerCst.objects.filter(id_cst=selection).delete()
            context = {'form': form}
            return render(request, 'mod_customer.html', context=context)
    
    
        else:
            context = {'form': form}
            return render(request, 'mod_customer.html', context=context)

1 Ответ

1 голос
/ 06 августа 2020

Это после шага @BlackDoor.

Ваш код может не достичь form.save (). Вот почему записи не обновляются.

Чтобы точно знать, сделайте что-нибудь вроде print (form.is_valid ()), если это False , тогда выполните form.errors , чтобы увидеть, где что-то пойдет не так.

...