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
Post a Comment