marcelo.delta
marcelo.delta

Reputation: 3082

instance is not updated, using forms save () Django

instance is not updated, using forms save () Django.

Could anyone help?

save() got an unexpected keyword argument 'cpnj'

views

cliente = Cliente.objects.get(user=request.user.id, pk=pk)
 if request.method == 'POST':
        form = ClienteForm(request.POST)
        if form.is_valid():
            form.update(instance=cliente, validated_data=form.cleaned_data)
            return redirect('clienteEdit', pk)

Forms

def update(self, instance, validated_data, context):
        print(instance)
        instance.save(**validated_data)

Upvotes: 0

Views: 34

Answers (1)

Hamalaw
Hamalaw

Reputation: 26

It looks like your model object Cliente and form ClientForm have a mismatch in one of the fields. Does your model object Cliente have a field called cpnj?

for updating I suggest you change the fields manually like this:

cliente = Cliente.objects.get(user=request.user.id, pk=pk)
 if request.method == 'POST':
        form = ClienteForm(request.POST)
        if form.is_valid():
            cliente.cpnj = form.cleaned_data['cpnj']
            cliente.save()
            return redirect('clienteEdit', pk)

Upvotes: 1

Related Questions