
在视图中创建个类,要实现此功能,并把结果返回前台 ,
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 文件