Skip to main content
 首页 » 编程设计

python之基于django类的删除 View 和验证

2025年05月04日25qlqwjy

我的看法:

class ModEmailDeleteView(DetailView): 
    model = EmailModel 
    template_name = "email_delete.html" 
    success_url = reverse_lazy('moderator_profile', request.user.id) 

这里我想检查特定字段的用户是否是请求用户然后只有他可以删除。喜欢

if obj.user == request.user 

那么只有他可以删除或者抛出404

如果我在 url 中有多个主键怎么办?并希望使用这些主键进行不同的验证

请您参考如下方法:

你可以这样做:

class ModEmailDeleteView(DeleteView): 
    model = EmailModel 
    template_name = "email_delete.html" 
    success_url = reverse_lazy('moderator_profile', request.user.id) 
 
    def delete(self, request, *args, **kwargs): 
       self.object = self.get_object() 
       if self.object.user == request.user: 
          self.object.delete() 
          return HttpResponseRedirect(self.get_success_url()) 
       else: 
          raise Http404 #or return HttpResponse('404_url')