Хей, у меня есть модель, которая вмещает доскуПолучить QuerySets от Many2ManyField (включают в смежных областях)
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)
Теперь, скажем, я назначьте тему на доске Windows, я могу получить этот объект легко.
Но я хочу, чтобы перечислить все темы, связанные с Вычислительным
Нить принадлежит к плате Windows, но это также относится к вычислительной плате через ассоциацию.
Как я могу выполнить запрос на вычислительной плате и извлекать все потоки с его субплат (а также любые принадлежащие только потоку вычислений)?
Я сделал это, но это очень грубо, я интересно, если есть более Джанго способ сделать это
Heres мой код этого на данный момент (работа)
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
Правильно, перечисление является нитью, оно переименовано. – dotty
Что произойдет, если я не знаю имя платы, и я получаю плату с доской = Board.objects.get (pk = 4) – dotty
board = Board.objects.get (pk = 3), затем threads = Threads. objects.filter (Q (board__parent_board = board)) работает! – dotty