在 Django 视图 class 中出现错误 - 未定义全局名称 'self'
in Djando view class getting error - global name 'self' is not defined
在我基于 Django 的应用程序中
我正在尝试重写删除视图的删除方法。
我有 2 个模型 Category
和 Subcategory
。
类别是子类别的外键,在删除时受到保护。
category = models.ForeignKey(Category, on_delete=models.PROTECT)
这是我在 view.py 中的 class
但是每次执行时我都会得到 - 未定义全局名称 'self'。
(代码在 class 内,所以 self 应该指的是 class。我以为我必须创建实例才能使用它,但我在 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)
您的函数参数丢失self
:
def delete(self, request, *args, **kwargs):
delete
函数属于 class CategoryDelete
,因此 class 方法需要 self
来访问实例的属性。
在我基于 Django 的应用程序中
我正在尝试重写删除视图的删除方法。
我有 2 个模型 Category
和 Subcategory
。
类别是子类别的外键,在删除时受到保护。
category = models.ForeignKey(Category, on_delete=models.PROTECT)
这是我在 view.py 中的 class 但是每次执行时我都会得到 - 未定义全局名称 'self'。
(代码在 class 内,所以 self 应该指的是 class。我以为我必须创建实例才能使用它,但我在 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)
您的函数参数丢失self
:
def delete(self, request, *args, **kwargs):
delete
函数属于 class CategoryDelete
,因此 class 方法需要 self
来访问实例的属性。