版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/85853512
一 编写视图类
# 继承了DeleteView类后,后续代码就不需要重复删除动作了
# 只需要声明确认删除模板template_name和删除完成之后的界面success_url
class DeleteCourseView(UserCourseMixin, DeleteView):
template_name = 'course/manage/delete_course_confirm.html'
success_url = reverse_lazy("course:manage_course")
二 配置URL
from django.conf.urls import url
from .views import AboutView,CourseListView,ManageCourseListView,CreateCourseView,DeleteCourseView
urlpatterns = [
url(r'about/$', AboutView.as_view(), name="about"),
url(r'course-list/$', CourseListView.as_view(), name="course_list"),
url(r'manage-course/$', ManageCourseListView.as_view(), name="manage_course"),
url(r'create-course/$', CreateCourseView.as_view(), name="create_course"),
# 默认情况DeleteView类接收以pk或者slug作为参数传入的值,并且通过GET方式访问一个删除的
# 确认页面,然后以POST方式提交删除表单,才能完成删除
url(r'delete-course/(?P<pk>\d+)/$', DeleteCourseView.as_view(), name="delete_course"),
]
三 前端模板
{% extends "article/base.html" %}
{% block title %}删除课程{% endblock %}
{% block content %}
<div>
<form action="" method="post">{% csrf_token %}
<p>你确认要删除 "{{ object.title }}"?</p>
<input type="submit" value="确认" />
</form>
</div>
{% endblock %}
四 添加删除链接
{% extends "article/base.html" %}
{% load staticfiles %}
{% block title %}管理课程{% endblock %}
{% block content %}
<div>
<div class='text-right'><a href="{% url 'course:create_course' %}"><button type="button" class="btn btn-primary">添加课程</button></a></div>
<table class="table table-hover" style="margin-top:10px">
<tr>
<td>序号</td>
<td>课程标题</td>
<td>发布日期</td>
<td>操作</td>
</tr>
{% for course in courses %}
<tr id={{ forloop.counter }}>
<td>{{ forloop.counter }}</td>
<td>{{ course.title }}</a></td>
<td>{{ course.created|date:"Y-m-d" }}</td>
<td>
<a name="edit" href="#"><span class="glyphicon glyphicon-pencil"></span></a>
<a name="delete" href="{% url 'course:delete_course' course.id %}" ><span class="glyphicon glyphicon-trash" style="margin-left:20px;"></span></a>
<a href="#"><span class="glyphicon glyphicon-search" style="margin-left:20px;"></span></a>
</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock %}
五 测试