在django应用程序中,有两个具有1-M关系的模型,例如: Parent
和Child
。我需要使用DeleteView
类删除Parent模型对象。在删除对象之前,我需要检查它是否有任何子对象,如果有,则返回错误消息而不是删除对象。
目前我的DeleteView,默认是:
class ParentDeleteView(DeleteView):
model = Parent
def get_success_url(self):
return reverse_lazy('parent-list')
我应该使用哪些方法来检查约束?
答案 0 :(得分:1)
在这种情况下,您需要覆盖delete
方法。
from django.http import HttpResponseRedirect
class ParentDeleteView(DeleteView):
model = Parent
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
# check if object has child if yes return error
# otherwise
success_url = self.get_success_url()
self.object.delete()
return HttpResponseRedirect(success_url)
def get_success_url(self):
return reverse_lazy('parent-list')