这是一个简单的例子:
from django.views.generic import DeleteViewfrom django.http import Http404class MyDeleteView(DeleteView): def get_object(self, queryset=None): """ Hook to ensure object is owned by request.user. """ obj = super(MyDeleteView, self).get_object() if not obj.owner == self.request.user: raise Http404 return obj
注意事项:
- 该
DeleteView
不会删除GET
请求; 这是你提供带有此视图template_name
的“是,我确定”按钮的确认模板(你可以在class属性中提供名称)POST
的机会。 - 你可能更喜欢错误消息而不是404?在这种情况下,请改写
delete
方法,在get_object
调用后检查权限并返回自定义响应。 - 不要忘记提供与(可选的,可自定义的)
success_url
类属性匹配的模板,以便用户可以确认该对象已被删除。



