潭州课堂25班:Ph201805201 django 项目 第三十三课 后台文章标签查询提交到前台,删除功能实现(课堂笔记)
在视图中创建个类,要实现此功能,并把结果返回前台 ,
from django.shortcuts import render from django.views import View from django.db.models import Count # django自带的计算 from ..news import models # 导入相关数据库 from utils.json_fun import to_json_data from utils.res_code import Code,error_map # Create your views here. class Index(View): ''' 创建 admin 主页视图 ''' def get(self, request): return render(request, 'admin/index/index.html') class TagManager(View): ''' 创建标签管理视图 /admin/tags/ ''' def get(self, request): # 查询新闻分类表 did,类名,及类下的新闻文章总数 # 跟上条件:没有被逻辑删除的,排序:文章总数,修改时间, tags = models.Tag.objects.values('id', 'name').annotate(num_news=Count('news')).\ filter(is_delete=False).order_by('-num_news', '-update_time') return render(request, 'admin/news/tags_manage.html', locals()) def delete(self, request, tag_id): # 删除 tag = models.Tag.objects.only('id').filter(is_delete=False, id=tag_id).first() if tag: # tag.delete() # 真的删除 # 逻辑删除 tag.is_delete = True # tag.save() tag.save(update_fields=['is_delete']) # 优化措施:只对指定字段保存 return to_json_data(errmsg='标签删除成功') else: return to_json_data(errno=Code.PARAMERR,errmsg='您要删除的标签不存在')
在 admin/news/tags_manage.html 文件