在Djando视图类中获取错误 - 全局名称' self'没有定义

时间:2016-04-14 17:09:06

标签: django class self

在我的基于Django的应用程序中

我试图覆盖删除视图的删除方法。 我有2个模型CategorySubcategory

类别是子类别的外键,它在删除时受到保护。

category = models.ForeignKey(Category, on_delete=models.PROTECT)  

这是我在view.py中的课程 但是每次我执行时我都会得到 - 全球名称' self'没有定义。

(代码在类中,所以self应该引用类。我认为我必须创建实例来使用它,但我在Django上在线看到的所有样本都是这样的。)

class CategoryDelete(DeleteView):
    model = Category
    success_url = reverse_lazy('category_list')

    def delete(request, *args, **kwargs):
        self.object = self.get_object()
        if self.object.gameteams_set.exists():
            # Return the appropriate response
            success_url = self.get_success_url()
            self.object.delete()
        return HttpResponseRedirect(success_url)

1 个答案:

答案 0 :(得分:4)

您的函数参数缺失self

def delete(self, request, *args, **kwargs):

delete函数属于类CategoryDelete,因此类方法需要self才能访问实例的属性。