django - Override form.save() to not create new record but update existing record in db table each time it is executed -


i trying hard prevent creation of new row in database table when save form in view.

i have below code in view

def checker(request):   response_data=''   if request.method == "post":     user_form1 = documentform(request.post, request.files)      if user_form1.is_valid():          new_form = user_form1.save(commit=false)         new_form.save()  # image file gets uploaded in server , new row gets created each time gets executed         user_form1.save_m2m()         res=td_tab.objects.filter(id=request.session.get('proid')).update(profpicpath=new_form.profpicpath.url)         response_data = 'updated response' else:     form = documentform()      response_data = 'nothing update!' return httpresponse(response_data, content_type="text/plain") 

form :

class documentform(forms.modelform):     profpicpath = forms.filefield()     class meta:         model = td_tab         fields = ('profpicpath',) 

model has several fields apart profpicpath.

the problem is, in view when new_form.save() gets executed, creating new record in database table :(

i want existing record updated specific proid.. surprisingly, below line doesn't work in view.. if make work, new row gets created , profpicpath field getting populated in database table latest entry :(

res=td_tab.objects.filter(id=request.session.get('proid')).update(profpicpath=new_form.profpicpath.url) 

how can prevent creation of new record in td_tab table on every request made checker view ?

or may there trick override save() method form, such updates existing record rather creating new record each of execution ?

you should pass model instance update form object:

your_instance = model.objects.get(some_data=some_data) form = documentform(request.post or none, instance=your_instance)  if form.is_valid():    ...    ...    form.save() 

Comments