I'm trying to do a inline formset with UI not with dajngo built in inlineformset_factory form.Here i'm done with add_view and edit_view.Here in the edit view i can update the existing record for the both parent and child model,and can add new record to the child model.But i cant remove the existing record from the child model in inline formset.Every thing is fine working at client side.When i click remove button from the UI, the record is removed by javascript,But in server side, in the edit_view the #Delete Existing record block cloud take the delete/remove functionality.I tried in many possible ways but i can't make the delete query for the removed items form the client side.
*models.py* from django.db import models class Category(models.Model): name = models.CharField(max_length=128) def __unicode__(self): return self.name class Product(models.Model): category = models.ForeignKey(Category) name = models.CharField(max_length=128) price = models.CharField(max_length=128) views.py def add(request): context = RequestContext(request) if request.method == 'POST': category = Category.objects.create(name = request.POST['category']) try: for n in range(1,7): product = Product.objects.create(category= category,name=request.POST['name_'+str(n)],price=request.POST['price_'+str(n)]) except KeyError: pass return HttpResponseRedirect('/') return render_to_response('add.html',context) def edit(request,pk): category = get_object_or_404(Category,id=pk) product = Product.objects.filter(category=category) product_count = product.count() context = RequestContext(request) if request.method == 'POST': for c in Category.objects.filter(id = category.id): c.name = request.POST['category'] c.save() try: #Update Existing record(child) for p,n in zip(Product.objects.filter(category = c),range(1,7)): p.name = request.POST['name_'+str(n)] p.price = request.POST['price_'+str(n)] p.save() except KeyError: #Delete Existing record(child) try: for d in range(1,7): for i in Product.objects.all().filter(name=request.POST.get('name_'+str(d)),price=request.POST.get('price_'+str(d))): print i.name except KeyError: pass else: #Add new record(child) try: for r in range(1,7): product,created = Product.objects.update_or_create(category= category,name=request.POST['name_'+str(r)],price=request.POST['price_'+str(r)]) except KeyError: pass return HttpResponseRedirect('/') args = {'category':category,'product':product,'product_count':product_count} return render_to_response('edit.html',args,context) add.html <h1>Add</h1><script type="text/javascript"> var i = 1; function addProduct(){ if (i <= 5){ i++; var div = document.createElement('div'); div.innerHTML = 'Name:<input type="text" name="name_'+i+'" >Price:<input type="text" name="price_'+i+'" ><input type="button" value="-" onclick="removeProduct(this)">'; document.getElementById('products').appendChild(div); }} function removeProduct(div) { document.getElementById('products').removeChild( div.parentNode ); i--;}</script> <form method="post" action="/add/">{% csrf_token %} <label>Category</label> <div> <input type="text" name="category"> </div> <label>Product</label> <div id="products"> <input type="button" id="add_product()" onClick="addProduct()" value="+" />(limit 6)<br> Name:<input type="text" name="name_1">Price:<input type="text" name="price_1"> </div> <div> <input type="submit" value="Submit"> </div></form> edit.html <h1>Edit</h1><script type="text/javascript"> var i = {{product_count}}; function addProduct(){ if (i <= 5){ i++; var div = document.createElement('div'); div.innerHTML = 'Name:<input type="text" name="name_'+i+'" >Price:<input type="text" name="price_'+i+'" ><input type="button" value="-" onclick="removeProduct(this)">'; document.getElementById('products').appendChild(div); }} function removeProduct(div) { document.getElementById('products').removeChild( div.parentNode ); i--;}</script> <form method="post" action="/edit/{{category.id}}/">{% csrf_token %} <label>Category</label> <div> <input type="text" name="category" value="{{category}}"> </div> <label>Product</label> <div id="products"> <input type="button" id="add_product()" onClick="addProduct()" value="+" />(limit 6) {% for list in product %} <div> Name:<input type="text" name="name_{{ forloop.counter }}" value="{{list.name}}">Price:<input type="text" name="price_{{ forloop.counter }}" value="{{list.price}}"><input type="button" value="-" onclick="removeProduct(this)"> </div> {% endfor %} </div> <div> <input type="submit" value="Submit"> </div></form> <https://lh3.googleusercontent.com/-P8B0i2ViW-U/VVBnkHnMO6I/AAAAAAAAAY0/bPdQJ-qA6VM/s1600/Screenshot%2Bfrom%2B2015-05-11%2B13%3A35%3A06.png> -- 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 django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/6c2a4a27-90ae-450b-8d35-dc6e3dae6180%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.