博客五部曲之一 - 简单博客


1208 浏览 5 years, 4 months

23 删除视图

版权声明: 转载请注明出处 http://www.codingsoho.com/

删除视图的实现非常简单。

实例删除之后是无法重定向到它的详情页面的, 所以我们重定向到列表页面。

from django.shortcuts import render, get_object_or_404, redirect

def post_delete(request, id=None):
    instance = get_object_or_404(Post, id=id)    
    instance.delete()
    messages.success(request, "item deleted")
    return redirect("posts:list")

同时,在URL里面,给列表添加了名字list,以及更新了删除视图的URL

urlpatterns = [
    url(r'^$', views.post_list, name="list"),
    url(r'^(?P<id>\d+)/delete$', views.post_delete, name="delete"), 
]

执行删除之后,实例不见了。但是,消息显示并没有出现,因为当前的模板不够完美,各个模板是相互独立的,接下来我们会用django的模板继承功能来优化。