Как получить все записи, связанные с родителями и детьми в Джанго? - PullRequest
0 голосов
/ 25 апреля 2019
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 весь идентификатор или весь объект фильтра.

1 Ответ

1 голос
/ 25 апреля 2019

Это может быть ваша модель класса

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 
...