Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试删除django中的模型对象时出错 def employee_delete(请求,id=None): 用户=获取对象或404(用户,id=id) #user=user.objects.get(id=id) 如果request.method==“POST”: 打印(类型(用户)) self.user.delete() 返回HttpResponseRedirect(反向('employee_list')) 其他: 上下文={} 上下文['user']=用户 返回呈现(请求'employee/delete.html',上下文)_Python_Django_Django Models_Sqlite_Django Views - Fatal编程技术网

Python 尝试删除django中的模型对象时出错 def employee_delete(请求,id=None): 用户=获取对象或404(用户,id=id) #user=user.objects.get(id=id) 如果request.method==“POST”: 打印(类型(用户)) self.user.delete() 返回HttpResponseRedirect(反向('employee_list')) 其他: 上下文={} 上下文['user']=用户 返回呈现(请求'employee/delete.html',上下文)

Python 尝试删除django中的模型对象时出错 def employee_delete(请求,id=None): 用户=获取对象或404(用户,id=id) #user=user.objects.get(id=id) 如果request.method==“POST”: 打印(类型(用户)) self.user.delete() 返回HttpResponseRedirect(反向('employee_list')) 其他: 上下文={} 上下文['user']=用户 返回呈现(请求'employee/delete.html',上下文),python,django,django-models,sqlite,django-views,Python,Django,Django Models,Sqlite,Django Views,在django 2.1.5中使用delete()删除对象时显示错误 您正在创建基于函数的视图。所以不要使用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.del

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


您正在创建基于函数的视图。所以不要使用
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中,您使用的是字符串级联

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

您正在创建基于函数的视图。所以不要使用
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中,您使用的是字符串级联

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

不要粘贴部分错误页面的屏幕截图,而是单击该页面上显示“切换到复制和粘贴视图”的链接,并将错误文本粘贴到此处。显示您的模型。我觉得里面有什么地方不对劲。@DanielRoseman在employee_中的文件“F:\Pycharm\ems\ems\employee\views.py”删除59。删除879中的文件“F:\Pycharm\ems\venv\lib\site packages\django\db\models\base.py”。collector.collect([self],keep_parents=keep_parents)文件“F:\Pycharm\ems\venv\lib\site packages\django\db\models\deletation.py”,位于collect 221中。field.remote\u field.on\u delete(self,field,sub\u objs,self.using)异常类型:TypeError at/employee/4/delete/Exception值:“str”对象不是可调用的用户。delete()我使用的是django@ManzurulHoqueRumi概要文件(models.Model):用户=models.OneToOneField(用户,on_delete=“CASCADE”)designation=models.CharField(max_length=20,null=False,blank=False)salary=models.IntegerField(null=True,blank=True)class Meta:ordering=('-salary',)def_str_(self):返回“{0}{1}”。格式(self.user.first_name,self.user.last_name)@receiver(post_save,sender=user)def user(发件人,实例,已创建,**kwargs):如果已创建:Profile.objects.create(user=instance)else:instance.Profile.save()而不是粘贴部分错误页面的屏幕截图,请单击该页面上显示“切换到复制和粘贴视图”的链接并将错误文本粘贴到此处。显示您的模型。我认为其中有问题。@DanielRoseman文件“F:\Pycharm\ems\ems\employee\views.py”在employee\u delete 59中。文件“F:\Pycharm\ems\venv\lib\site packages\django\db\models\base.py”在delete 879.collector.collect([sel],keep\u parents=keep\u parents)文件中collect 221.field.remote\u field.on\u delete(self,field,sub\u objs,self.using)中的“F:\Pycharm\ems\venv\lib\site packages\django\db\models\deletation.py”异常类型:TypeError at/employee/4/delete/Exception值:“str”对象不是可调用的用户。delete()我使用的是django@ManzurulHoqueRumiProfile(models.Model):user=models.OneToOneField(user,on_delete=“CASCADE”)designation=models.CharField(max_length=20,null=False,blank=False)salary=models.IntegerField(null=True,blank=True)class Meta:ordering=('-salary',def_ustr_u(self):返回“{0}{1}”。格式(self.user.first_name,self.user.last_name)@receiver(post_save,sender=user)def user_created(sender,instance,created,**kwargs):如果创建:Profile.objects.create(user=instance)else:instance.Profile.save()这是真的,但不是OP出错的原因。这是真的,但不是OP出错的原因。