On 30-08-11 13:05, Showket Bhat wrote:
I have created a small application where in i am inserting and
deleting records. I am able to delete a single record however when a
select all or more then one record it deletes the last record only.. I
tried a lot but failed please help I am wring the Code and the Console
output here....


===========================================
my function to delete a medecine from its table  in views.py
===========================================

def delete_medecine(request,medecine={}):
     print "------>>",request.POST
     list = []
     for i in request.POST['del_id']:
         m = Medecine.objects.get(id = i)
         m.delete()
     return HttpResponseRedirect('/medecine')

Ah! Your code is fine, apart from one detail: the request.POST looks like a regular dictionary, but it isn't. It is a querydict, look at
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.QueryDict

your request.POST['del_id'] effectively calls __getitem__('del_id') on the querydict and the querydict documentation says:

"If the key has more than one value, __getitem__() returns the last value."

Now you know why only the last item gets deleted. It bit my once, too.

What you need to call is request.POST.getlist('del_id'): that will give you the list you're expecting.



Reinout

--
Reinout van Rees                    http://reinout.vanrees.org/
[email protected]             http://www.nelen-schuurmans.nl/
"If you're not sure what to do, make something. -- Paul Graham"

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to