Django Registration + Django Auth - Part 4

Giving the option to the user to delete its own account is often required.
 

from django.shortcuts import redirect
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth import logout

class delete(LoginRequiredMixin, TemplateView):
     template_name = "delete.html"

     def post(self, request, *args, **kwargs):
        user = request.user
        logout(request)
        user.delete()
        return redirect('/')

 

urlpatterns = [
	...
	path("delete", delete.as_view(), name="delete"),
]

 

<h1>Delete Account</h1>
<p>If you want to delete your account please type "delete" below</p>
<form id="delete-form" method="post">
    {% csrf_token %}
    <input type="text" id="delete-input">
    <input type="submit" id="delete-submit" value="Delete">
</form>
    
<script>
    document.getElementById('delete-form').addEventListener('submit', function(event) {
        var input = document.getElementById('delete-input').value;
        if (input !== 'delete') event.preventDefault();
    });
</script>

 


Python 3.12
Django==4.2
django-registration==3.3


22 July 2024 | Last Updated: 22 Nov. 2025 | jaimedcsilva

Related
  • Django Registration + Django Auth - Part 1
  • Django Registration + Django Auth - Part 2
  • Django Registration + Django Auth - Part 3
  • Django Registration + Django Auth - Part 4
  • Adding Google reCapthca - Part 5
  • Adding Google Recapthca - Part 6

  • Buy Me a Coffee