• 潭州课堂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  文件

  • 相关阅读:
    那些好的句子
    ❤️博客使用说明-飞沙
    求n以内,除5的倍数的和
    C# 枚举
    2021年bilibili程序员节日
    MT管理器使用技巧
    腾讯找人工客服
    校报白皮书
    C语言教程(下)
    svn版本控制
  • 原文地址:https://www.cnblogs.com/gdwz922/p/10224043.html
Copyright © 2020-2023  润新知