Django新手在這裏。Django一對多查詢
我創建了三種模型:樂隊,專輯和AlbumType(Live,EP,LP)。專輯有兩個外鍵(從樂隊和專輯類型)。好了,所以,在視圖中做出這樣的事情:
bandList = Band.objects.all()
檢索所有頻段,但我無法弄清楚如何讓所有的專輯從樂隊在同樣的觀點。
任何幫助將不勝感激。謝謝。
Django新手在這裏。Django一對多查詢
我創建了三種模型:樂隊,專輯和AlbumType(Live,EP,LP)。專輯有兩個外鍵(從樂隊和專輯類型)。好了,所以,在視圖中做出這樣的事情:
bandList = Band.objects.all()
檢索所有頻段,但我無法弄清楚如何讓所有的專輯從樂隊在同樣的觀點。
任何幫助將不勝感激。謝謝。
如果你分享你的模型定義可能會很好。但我希望這可以幫助你:
如果你想取回相冊特定頻段:
band = Band.objects.get(...)
band_albums = Album.objects.filter(band=band)
這將返回專輯的樂隊。
如果你想爲所有帶retrive專輯:
bandList = Band.objects.all().select_related('album_set')
這會返回之前的禁令,但將緩存的相冊。
默認情況下,相關對象(通過在其他模型ForeignKey
)在這種情況下是band.album_set
進入低谷<modelname>_set
ZO(注意,這是一個管理器屬性,所以你可能會使用band.album_set.all()
的大部分時間)。
我個人比較喜歡給我的ForeignKey
字段a related_name
,所以我可以在另一個模型上命名該屬性。下一個示例給出Band
屬性band.albums
。
class Band(models.Model):
# Band definition
class Album(models.Model):
band = models.ForeignKey(Band, related_name='albums')
# Rest of album definition
它的工作原理。多謝,夥計!。 –
感謝您的回答,真的很有用。這有助於我理解很多Django的東西。 –