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或所有对象过滤器。
答案 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