Django实现文章删除功能
一 博客文章相关操作思维导图
二 博客文章删除功能
1 优化前端模板mysite/templates/article/column/article_list.html
{% extends "article/base.html" %}
{% load staticfiles %}
{% block title %}文章列表{% endblock %}
{% block content %}
<div>
<table class="table table-hover">
<tr>
<td>序号</td>
<td>标题</td>
<td>栏目</td>
<td>操作</td>
</tr>
{% for article in articles %}
<tr id={{ article.id }}>
<td>{{ forloop.counter }}</td>
<td><a href="{{ article.get_absolute_url }}">{{ article.title }}</a></td>
<td>{{ article.column }}</td>
<td>
<a name="delete" href="javascript:" onclick="del_article(this, {{ article.id }})"><span class="glyphicon glyphicon-trash" style="margin-left:20px;"></span></a>
</td>
</tr>
{% endfor %}
</table>
</div>
<script type="text/javascript" src='{% static "js/jquery.js" %}'></script>
<script type="text/javascript" src="{% static 'js/layer.js'%}"></script>
<script type="text/javascript">
function del_article(the, article_id){
var article_name = $(the).parents("tr").children("td").eq(1).text();
layer.open({
type: 1,
skin: "layui-layer-rim",
area: ["400px", "200px"],
title: "删除文章",
content: '<div class="text-center" style="margin-top:20px"><p>是否确定删除《'+article_name+'》</p></div>',
btn:['确定', '取消'],
yes: function(){
$.ajax({
url: '{% url "article:del_article" %}',
type:"POST",
data: {"article_id":article_id},
success: function(e){
if(e=="1"){
parent.location.reload();
layer.msg("删除成功");
}else{
layer.msg("删除失败");
}
},
})
},
});
}
</script>
{% endblock %}
2 编写视图函数
@login_required(login_url='/account/login')
@require_POST
@csrf_exempt
def del_article(request):
article_id = request.POST['article_id']
try:
article = ArticlePost.objects.get(id=article_id)
article.delete()
return HttpResponse("1")
except:
return HttpResponse("2")
3 编写URL
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^article-column/$', views.article_column, name="article_column"),
url(r'^rename-column/$', views.rename_article_column, name="rename_article_column"),
url(r'^del-column/$', views.del_article_column, name="del_article_column"),
url(r'^article-post/$', views.article_post, name="article_post"),
url(r'^article-list/$', views.article_list, name="article_list"),
url(r'^article-detail/(?P<id>\d+)/(?P<slug>[-\w]+)/$', views.article_detail, name="article_detail"),
url(r'^del-article/$', views.del_article, name="del_article"),
]
三 测试
1 删除前页面
2 删除后页面