尝试删除django中的模型对象时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试删除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)

在django 2.1.5中使用delete()删除对象时显示错误

Screenshot of the error

答案

您正在创建基于功能的视图。所以不要使用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)

更新

在你的models.py中,你使用的是字符串CASCADE

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

以上是关于尝试删除django中的模型对象时出错的主要内容,如果未能解决你的问题,请参考以下文章

Django 在模型中保存 JSON 数据时出错

响应 Django 中的模型更改?

删除时出错:表达式必须是指向完整对象类型的指针

如何使用 jquery 从 asp.net 视图模型中动态删除行而不删除集合中的其余下一个对象

获取所有相关的 Django 模型对象

Django:在一个视图中有超过 3 个模型时出错