def delete_tag(request): # FIXME: ugly if request.method == "POST": user = request.user if not user: return {'r': 0, 'msg': '未登录,请先登录'} tag_name = request.get_form_var('tag_name', '').decode('utf-8') tag_type = request.get_form_var('tag_type', '') tag_target_id = request.get_form_var('tag_target_id', '') if not tag_name: return {'r': 0, 'msg': 'tag不能为空'} try: tag_type, tag_target_id = int(tag_type), int(tag_target_id) except: return {'r': 0, 'msg': '错误的数据类型'} if tag_type == TAG_TYPE_PROJECT_ISSUE: target = CodeDoubanProject.get(tag_target_id) elif tag_type == TAG_TYPE_TEAM_ISSUE: target = Team.get(tag_target_id) else: return {'r': 0, 'msg': '错误的数据类型'} if not target.is_admin(user.name): return {'r': 0, 'msg': '没有操作权限'} tname = TagName.get_by_name_and_target_id(tag_name, tag_type, target.id) if not tname: return {'r': 0, 'msg': 'tag不存在'} tags = Tag.gets_by_tag_id(tname.id) for tag in tags: tag.delete() tname.delete() return {'r': 1, 'msg': '删除成功'}