多級評論的實現
阿新 • • 發佈:2018-09-16
models none 如果 lse print 通過 ldr model 重點
comment_list=models.Comment.objects.filter(news_id=new_id)
ret=[] # 最終拿到的數據
comment_list_dict={} # 構建的中間字典
for row in comment_list: # 通過查到的數據中的id作為key,每一行數據作為value生成一個字典
row.update({"children":[]}) # 構建一個鍵children對應一個空列表
comment_list_dict[row["id"]]=row # 將id作為鍵,當前行作為值存到該字典中
for item in comment_list: # 遍歷一遍取到的數據列表
parrent_row=comment_list_dict.get(item["parent_id"]) # 拿到當前行對應的父親的地址
if not parrent_row: # 如果父親是None,則直接進入ret中
ret.append(item)
else: # 否則,將這行append到父親的children中
parrent_row["children"].append(item) # 重點在這一行,用到了上面提到的第一個知識點
print(ret)
多級評論的實現