'DoesNotExist at /admin/auth/user/. User matching query does not exist

  • I am trying to delete a user from admin, but can't do it.

  • I tried to delete function by changing sender to User and user=
    instance but 'maximum recursion depth' error occurs.

1.users/signals.py

from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from .models import Profile
from django.contrib.auth.models import User


@receiver(post_save, sender=Profile)
@receiver(post_save, sender=User)
def createProfile(sender, instance, created, **kwargs):
    if created:
        print('Profile created')
        user = instance
        user.save()
        profile = Profile.objects.create(
            user=user,
            username = user.username,
            email=user.email,
        )

# @receiver(post_delete, sender=Profile)
def deleteUser(sender, instance, **kwargs):
    user = instance.user                // error showing to this line
    user.delete()

# post_save.connect(createProfile, sender=User)
post_delete.connect(deleteUser, sender=Profile)

**2.Users/models.py

from django.db import models
import uuid
from django.contrib.auth.models import User


# Create your models here.
class Profile(models.Model):
    user = models. OneToOneField(User,on_delete=models.CASCADE, null=True,blank=True)
    name = models.CharField(max_length=200, null=True, blank=True)
    username = models.CharField(max_length=200, null=True, blank=True)
    short_intro = models.TextField(max_length=1000,null=True,blank=True)
    short_bio = models.TextField(max_length=1000,null=True,blank=True)
    user_image = models.ImageField(null=True,blank=True,upload_to='profiles/',default='profiles/mehdi.png')
    email = models.CharField(max_length=200, null=True, blank=True)
    social_github = models.CharField(max_length=200, null=True, blank=True)
    social_linkedin = models.CharField(max_length=200, null=True, blank=True)
    social_website = models.CharField(max_length=200, null=True, blank=True)
    social_twitter = models.CharField(max_length=200, null=True, blank=True)
    social_stackoverflow = models.CharField(max_length=200, null=True, blank=True)


    def __str__(self):
        return self.username



Solution 1:[1]

def delete(self, request, pk, *args, **kwarg):
    YourModelName.objects.filter(id = pk).delete()
    return redirect(reverse('template_Name'))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1