Saturday, 31 August 2013

django delete object from post (bootstrap)

django delete object from post (bootstrap)

I'm trying to implement a way to delete objects from frontend using a form
and Bootstrap. The alert box is closing but upon page refresh the object
is still present and no deletion is made in database.
What's the proper way of implementing this? Please help!
forms.py
class DeleteAlertForm(forms.ModelForm):
def is_valid(self):
form = super(DeleteAlertForm, self).is_valid()
for f, error in self.errors.iteritems():
if f != '__all__':
self.fields[f].widget.attrs.update({'class': 'error', 'value':
strip_tags(error)})
return form
class Meta:
model = Alert
fields = []
views.py
@login_required
def delete(request, alert_id):
if request.method == "POST":
form = DeleteAlertForm(request.POST)
if form.is_valid(): # checks CSRF
a_id = request.POST.get('alert_id', False)
alert = New.objects.get(pk=a_id)
alert.delete()
return HttpResponseRedirect("/")
else:
return redirect('/')
return redirect('/')
template.html
<div class="alert alert-info alert-block">
<form action="/delete/" method="post">
{% csrf_token %}
<input type="hidden" value="{{alert.id}}" name="alert_id">
<button type="submit" class="close" data-dismiss="alert">×</button>
</form>
</div>

No comments:

Post a Comment