如何在Django中获取所有与记录相关的父级和子级?

2024-09-29 19:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

NoteID(PK)  NoteText    ParentNoteID
1           x           -  
2           y           1
3           z           -
4           a           2
5           b           -
6           z           4

如何获取所有与记录相关的密钥

例如,get NiteID4结果应为1,2.4,6 all id或all object filter。你知道吗


Tags: idgetobject记录密钥allfilterpk
1条回答
网友
1楼 · 发布于 2024-09-29 19:27:45

这可以是你的模型课

class Note(models.Model):
   note_text = models.CharField(max_length=255)
   parent_id = models.ForeignKey('self', models.DO_NOTHING)

那么函数可以是这样的:

def recursive(note, child_list): 
    note_children = Note.objects.filter(parent=note) 
    child_list.append(note.id) 
    if note_children.count()==0: 
         return child_list 
    for n in note_children: 
        recursive(n, child_list)  

    return child_list 

相关问题 更多 >

    热门问题