潭州课堂25班:Ph201805201 django 项目 第三十四课 后台文章标签更新功能 ,创建功能实现(课堂笔记)

g更改标签:,前台要向后台传来 id, name,

对标签进行校验:标签不能为空,标签是否已经存在,

 流程:

    def put(self, request, tag_id):
        '''
        更改标签
        :param request:
        :return:
        '''
        # 拿到前台传来的参数
        try:
            json_data = request.body
            if not json_data:
                return to_json_data(errno=Code.PARAMERR, errmsg=error_map[Code.PARAMERR])
        except Exception as e:
            logging.info('错误信息:{}'.format(e)
            return to_json_data(errno=Code.UNKOWNERR, errmsg=error_map.[Code.UNKOWNERR])
        # 将json转化为dict
        dict_data = json.loads(json_data.decode('utf8'))
        tag_name = dict_data.get('name')

        tag = models.Tag.objects.only().filter(id=tag_id).first()
        if tag:
                            # 清洗去空格
            if tag_name and tag_name.strip():
                # 如果新命名的 name 在标签中不存在
                if not models.Tag.objects.only('name').filter(name=tag_name).exists():
                    # 把新的 name 给存入
                    tag.name = tag_name
                    tag.save(update_fields=['name'])                       # 优化措施
                    return to_json_data(errmsg='标签更改成功')
                else: return to_json_data(errno=Code.PARAMERR,errmsg='该标签已经存在')
            else: return to_json_data(errno=Code.PARAMERR,errmsg='标签名不能为空')
        else: return to_json_data(errno=Code.PARAMERR,errmsg='您要更改的标签不存在')

  

猜你喜欢

转载自www.cnblogs.com/gdwz922/p/10236915.html