Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django class based delete view and validation

My view:

class ModEmailDeleteView(DetailView):
    model = EmailModel
    template_name = "email_delete.html"
    success_url = reverse_lazy('moderator_profile', request.user.id)

Here I want to check if the user of particular filed is request user then only he can delete. Like

if obj.user == request.user

then only he can delete or throw 404

Also what if I have multiple primary key in the url?? and want different validations using those primary keys

like image 521
gamer Avatar asked Aug 30 '26 01:08

gamer


1 Answers

You can do it like this:

class ModEmailDeleteView(DeleteView):
    model = EmailModel
    template_name = "email_delete.html"
    success_url = reverse_lazy('moderator_profile', request.user.id)

    def delete(self, request, *args, **kwargs):
       self.object = self.get_object()
       if self.object.user == request.user:
          self.object.delete()
          return HttpResponseRedirect(self.get_success_url())
       else:
          raise Http404 #or return HttpResponse('404_url')
like image 200
ruddra Avatar answered Sep 01 '26 22:09

ruddra



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!