Hay, у меня есть модель, в которой находится доска
class Board(models.Model):
parent_board = models.ForeignKey('self', blank=True, null=True)
Каждая доска может принадлежать другой доске
Так сказать
Linux
Windows
OS X
может принадлежать доске под названием
Computing
На этих досках находится объект Thread
class Thread(models.Model):
board = models.ForeignKey(Board)
Теперь, скажем, я назначил Thread на доску Windows, я могу легко получить этот объект.
Но я хочу перечислить все темы, связанные с вычислениями
Поток принадлежит плате Windows, но он также будет принадлежать Вычислительной плате через ассоциацию.
Как я могу запустить Запрос на вычислительной плате и извлечь все потоки из ее подсистем (а также все принадлежащие только вычислительному потоку)?
Я сделал это, но это очень грубо, мне интересно, есть ли более Django способ сделать это
Вот мой код на данный момент (работает)
listings = [] # blank list to hold clean values
for board in board.board_set.all(): # for each board
for listing in board.listing_set.all(): # get the listing from each board
listings.append( listing ) # append to the listings list