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

时间:2019-04-25 10:58:26

标签: python django django-orm

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

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

例如NiteID 4 比结果应为1,2.4,6所有id或所有对象过滤器。

1 个答案:

答案 0 :(得分:1)

这可以是您的模型课程

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