比方說,我們有兩個型號這樣的:Django的過濾器對很多一對多的關係
Artist(models.Model):
name = models.CharField(max_length=50)
Track(models.Model):
title = models.CharField(max_length=50)
artist = models.ForeignKey(Artist, related_name='tracks')
如何過濾這種關係得到第一個外國記錄?
所以我已經試過這樣的事情,但它沒有工作(如預期)
artists = Artist.objects.filter(tracks__first__title=<some-title>)
artists = Artist.objects.filter(tracks[0]__title=<some-title>)
有什麼辦法,使這項工作?
如果你想其中一個軌道具有多個藝術家的場景模式,我建議改變模型和關係。 使用當前技術,您可以存儲同一個Artist的多個曲目的數據。 –
不是真的..我只是希望能夠在MANY_TO_MANY關係僅過濾第一個記錄而不是所有的人都 – intelis
確定。很簡單。 你想要藝術家,給定一個曲目標題: Artist.objects.filter(tracks__title =)[0] 這會給你第一行(按插入順序排列) –