django处理评论和回复的复杂分页
分类: python 标签: django处理评论和回复的复杂分页
2026-01-30 13:05:13 68浏览
django处理评论和回复的复杂分页,如何处理返回类型list里面带有回复list
image.png

image.png
models
class Comment(models.Model):
id = models.AutoField(primary_key=True)
col_id= models.IntegerField(null=True,blank=True)
hf_id= models.IntegerField(null=True,blank=True)
hitlikenum= models.IntegerField(null=True,blank=True)
cts=models.CharField( max_length=255)
ctype=models.CharField( max_length=255)
ccont=models.TextField()
user=models.ForeignKey(to='Users',to_field='id',on_delete=models.SET_NULL,related_name='user_comment',null=True,blank=True)
hfuser=models.ForeignKey(to='Users',to_field='id',on_delete=models.SET_NULL,related_name='hfuser_comment',null=True,blank=True)
views
import json
from django.db.models import Q
from django.http import JsonResponse
from jf3qApp.models import Comment
from jf3qApp.models import Forum
from jf3qApp.models import Users
from jf3qApp.utils import pageUtil
from jf3qApp.utils import dateUtil
from jf3qApp.utils import uploadUtil
from rest_framework import serializers
from jf3qApp.utils import htmlParseUtil
class UsersSerializer(serializers.ModelSerializer):
class Meta:
model=Users
fields='__all__'
class CommentSerializer(serializers.ModelSerializer):
rli=serializers.SerializerMethodField()
user=UsersSerializer(serializers.ModelSerializer)
hfuser=UsersSerializer(serializers.ModelSerializer)
class Meta:
model=Comment
fields='__all__'
def get_rli(self,obj):
return getattr(obj,'rli',[])
def page(request):
query_data={}
pageNo=request.POST.get('pageNo')
pageSize=request.POST.get('pageSize')
col_id=request.POST.get('col_id')
ctype=request.POST.get('ctype')
hf_id=request.POST.get('hf_id')
ccont=request.POST.get('ccont')
user_id=request.POST.get('user_id')
nickname=request.POST.get('nickname')
if ccont:
query_data['ccont__icontains']=ccont
if nickname:
query_data['user__nickname__icontains']=nickname
if col_id:
query_data['col_id']=col_id
if ctype:
query_data['ctype']=ctype
if hf_id:
query_data['hf_id']=hf_id
if user_id:
query_data['user_id']=user_id
all=Comment.objects.select_related('user','hfuser').filter(**query_data).all().order_by('-id')
page_info=pageUtil.getpage(all,page_no=pageNo,page_size=pageSize)
result_list=[]
for comment in page_info['list']:
rli=Comment.objects.select_related('user','hfuser').filter(hf_id=comment.id).all().order_by('-id')
comment_data=CommentSerializer(comment,many=False).data;
rli_data=CommentSerializer(rli,many=True).data;
comment_data.rli=rli_data;
result_list.append(comment_data)
serializer=CommentSerializer(result_list,many=True)
page_info['list']=serializer.data
data={'status':1,'msg':'操作成功','obj':page_info}
return JsonResponse(data)
返回类型list里面带有回复list
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
暂无评论,快来写一下吧
展开评论
他的专栏
他感兴趣的技术







java
vue
springboot
Mysql
ssm
小程序
uniapp
js和jquery