在我的基于Django的应用程序中
我试图覆盖删除视图的删除方法。
我有2个模型Category
和Subcategory
。
类别是子类别的外键,它在删除时受到保护。
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)
答案 0 :(得分:4)
您的函数参数缺失self
:
def delete(self, request, *args, **kwargs):
delete
函数属于类CategoryDelete
,因此类方法需要self
才能访问实例的属性。