arun jose
arun jose

Reputation: 21

Getting error while trying to delete a model object in django


def employee_delete(request, id=None):
    user = get_object_or_404(User, id=id)
    #user = User.objects.get(id=id)
    if request.method == 'POST':
        print(type(user))
        self.user.delete()
        return HttpResponseRedirect(reverse('employee_list'))
    else:
        context = {}
        context['user'] = user
        return render(request, 'employee/delete.html', context)

Error showing while deleting the object using delete() in django 2.1.5

Screenshot of the error

Upvotes: 0

Views: 1194

Answers (1)

Manzurul Hoque Rumi
Manzurul Hoque Rumi

Reputation: 3104

You are creating function based view. So don't use self

def employee_delete(request, id=None):
    user = get_object_or_404(User, id=id)
    #user = User.objects.get(id=id)
    if request.method == 'POST':
        print(type(user))
        user.delete() # change here
        return HttpResponseRedirect(reverse('employee_list'))
    else:
        context = {}
        context['user'] = user
        return render(request, 'employee/delete.html', context)

Updates

In your models.py you are using string CASCADE

user = models.OneToOneField(User, on_delete=models.CASCADE) # update like this

Upvotes: 2

Related Questions