当前位置: 首页 > news >正文

django --递归查询评论

表数据

在这里插入图片描述

树状结构

@action(methods=('GET', ), detail=False)
def get_info_pinglun(self, request, *args, **kwargs) -> Response:'''根据评论id查所有回复@params  wenxian_pinglun_id   -->  评论id;'''wenxian_pinglun_id = self.request.GET.get('wenxian_pinglun_id')results = self._recursion_get_reply(wenxian_pinglun_id)return Response({'code': 0,'msg': 'success','results': results})def _recursion_get_reply(self, wenxian_pinglun_id: int):'''递归查该评论底下的所有回复'''results = []queryset = WenxianPinglun.objects.filter(other_pinglun_id=wenxian_pinglun_id) # 获取该评论下所有回复for instance in queryset:user = User.objects.get(user_id=instance.user_id)other = User.objects.get(user_id=instance.other_id)results.append({'wenxian_pinglun_id': instance.wenxian_pinglun_id,'user__img': user.img,'user__nicheng': user.nicheng,'other__nicheng': other.nicheng,'text': instance.text,'children': self._recursion_get_reply(instance.wenxian_pinglun_id)})return results

在这里插入图片描述

扁平化处理

@action(methods=('GET', ), detail=False)
def get_info_pinglun(self, request, *args, **kwargs) -> Response:'''根据评论id查所有回复@params  wenxian_pinglun_id   -->  评论id;'''wenxian_pinglun_id = self.request.GET.get('wenxian_pinglun_id')results = self._recursion_get_reply(wenxian_pinglun_id)return Response({'code': 0,'msg': 'success','results': results})def _recursion_get_reply(self, wenxian_pinglun_id: int):'''递归查该评论底下的所有回复'''results = []queryset = WenxianPinglun.objects.filter(other_pinglun_id=wenxian_pinglun_id) # 获取该评论下所有回复for instance in queryset:user = User.objects.get(user_id=instance.user_id)other = User.objects.get(user_id=instance.other_id)results.append({'wenxian_pinglun_id': instance.wenxian_pinglun_id,'user__img': user.img,'user__nicheng': user.nicheng,'other__nicheng': other.nicheng,'text': instance.text})for instance in queryset:results.extend(self._recursion_get_reply(instance.wenxian_pinglun_id))return results

在这里插入图片描述

http://www.lryc.cn/news/513954.html

相关文章:

  • 【开源免费】基于SpringBoot+Vue.JS音乐网站(JAVA毕业设计)
  • SUBSTRING_INDEX()在MySQL中的用法
  • 对45家“AI+安全”产品/方案的分析
  • Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(1):Oracle Dataguard 概述
  • Pycharm 中 virtualenv、pipenv、conda 虚拟环境的用法
  • UNI-APP弹窗
  • 【大模型实战篇】LLaMA Factory微调ChatGLM-4-9B模型
  • 【Cesium】三、实现开场动画效果
  • #渗透测试#红蓝攻防#红队打点web服务突破口总结01
  • 适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成
  • 智能家居体验大变革 博联 AI 方案让智能不再繁琐
  • 云计算与服务是什么
  • 接口测试面试题
  • 【Cesium】六、实现鹰眼地图(三维)与主图联动效果
  • ESLint+Prettier的配置
  • 4.微服务灰度发布落地实践(消息队列增强)
  • 【从零开始入门unity游戏开发之——C#篇35】C#自定义类实现Sort自定义排序
  • 音频进阶学习九——离散时间傅里叶变换DTFT
  • 连接github和ai的桥梁:GitIngest
  • Pytorch使用手册-DCGAN 指南(专题十四)
  • Flume的安装和使用
  • [Hive]七 Hive 内核
  • Druid密码错误重试导致数据库超慢
  • Ubuntu 24.04安装和使用WPS 2019
  • week05_nlp大模型训练·词向量文本向量
  • 【RabbitMQ消息队列原理与应用】
  • 反欺诈风控体系及策略
  • Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length
  • 【代码分析】Unet-Pytorch
  • 【LLM入门系列】01 深度学习入门介绍