While I'm waiting on a response, I will try an update view. On Saturday, December 15, 2018 at 10:58:36 PM UTC-5, [email protected] wrote: > > Hi I am trying to update a record. Form.save() worked but it created a new > record and I have yet to figure out how to update a database record in > views.py. Below are the 2 views related to what I'm doing. On one page I > list customers to be chosen for update. When a customer is chosen, the pk > is posted back and the user is redirected to the edit page. Any idea how I > can update the db record with the form's cleaned data? Thanks > > # Allows for the customer record to be selected > # Then directs to an edit form > class listcustomers(ListView): > model = dbCustomer > template_name = "mysite/admin_listcustomers.html" > > queryset = dbCustomer.objects.all() > context_object_name = 'customerlist' > paginate_by= 1 > > def post(self,request): > for key in request.POST: > if "customer_" in key: > print(key, request.POST[key]) > if request.POST[key] == "Edit": > pk = re.findall('\d', key) > if pk: > # returned pk has been verified > # dump cusomer id into a session variable > # and redirect for editing > request.session['customer_pk'] =int(pk[0]) > return redirect("editcustomer") > else: > pass > return render(request,self.template_name,) > > # This is where the selected customer gets the form to allow editing > def editcustomer(request): > template_name='mysite/admin_editcustomer.html' > pk = request.session['customer_pk'] > qs = dbCustomer.objects.get(id=pk) > > # Posted for saving > if request.method=="POST": > form = frmCustomer(request.POST) > if form.is_valid(): > # here I tried form.save() hoping frmcustomer would be bound > # to the record the queryset pulled, it isn't. > # form.save() just created a new record > # I have the pk. > # How do I simply update the record from the form.cleaned data > # This did not work > dbCustomer.objects.filter(pk).update(form.cleaned_data) > print(form.cleaned_data["contactfn"]) #Cleaned data is there. > > # If updated, get rid of currect session variable > request.session['customer_pk']='' > # return to the customer list > return redirect("listcustomers") > else: > args = {"form":form,} > return render(request,template_name,args) > else: > # Getting for editing > > form = frmCustomer(initial=model_to_dict(qs)) > args = {'form':form,} > return render(request,template_name,args) >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/16dd4de7-fba3-41aa-ae36-9c39208517f7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

