有条件的通用 deleteview
Generic deleteview with condition
我一直在尝试创建 Django 通用 deleteview,以删除模型的实例。
但是我必须检查是否允许删除此项目。这是使用模型中定义的方法完成的。
到目前为止,我已经创建了这个:
@login_required
def delete_employee(request, pk):
employee = None
try:
employee = Employee.objects.get(pk=pk)
except:
pass
if employee and not employee.empty():
return render(request, "error.html", None)
else:
# Load the generic view here.
这样走合适吗?我怎样才能在那里加载通用视图?
我试过 EmployeeDelete.as_view()
之类的东西,但这些东西不起作用。
或者有没有办法在通用视图中检查它?
我也试过了,但我无法加载错误页面,只是抛出错误。
要使用 DeleteView 执行此操作,您只需覆盖继承视图上的 delete 方法即可。这是一个基于你所说的例子。这只是您如何完成它的示例。您可能需要根据具体情况对其进行调整,特别是 can_delete
上的其他情况
class EmployeeDeleteView(DeleteView):
success_url = reverse_lazy('index')
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
can_delete = self.object.can_delete()
if can_delete:
return super(EmployeeDeleteView, self).delete(
request, *args, **kwargs)
else:
raise Http404("Object you are looking for doesn't exist")
我一直在尝试创建 Django 通用 deleteview,以删除模型的实例。
但是我必须检查是否允许删除此项目。这是使用模型中定义的方法完成的。
到目前为止,我已经创建了这个:
@login_required
def delete_employee(request, pk):
employee = None
try:
employee = Employee.objects.get(pk=pk)
except:
pass
if employee and not employee.empty():
return render(request, "error.html", None)
else:
# Load the generic view here.
这样走合适吗?我怎样才能在那里加载通用视图?
我试过 EmployeeDelete.as_view()
之类的东西,但这些东西不起作用。
或者有没有办法在通用视图中检查它? 我也试过了,但我无法加载错误页面,只是抛出错误。
要使用 DeleteView 执行此操作,您只需覆盖继承视图上的 delete 方法即可。这是一个基于你所说的例子。这只是您如何完成它的示例。您可能需要根据具体情况对其进行调整,特别是 can_delete
上的其他情况class EmployeeDeleteView(DeleteView):
success_url = reverse_lazy('index')
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
can_delete = self.object.can_delete()
if can_delete:
return super(EmployeeDeleteView, self).delete(
request, *args, **kwargs)
else:
raise Http404("Object you are looking for doesn't exist")