2011-11-12 113 views
7

定義一個名字,我有兩個型號:Django的:反向ForeignKey的

class Foo(models.Model): 
    foo_field = ... 

class Bar(models.Model): 
    foo = models.ForeignKey(Foo) 
    bar_field = ... 

,我可以訪問與一個Foo與所有酒吧實例:

Foo.bar_set.all() 

有沒有辦法來改變'反向名稱',就像在ManyToManyField中一樣,以便我可以這樣寫:

Foo.bars.all() 

回答

15

是的,使用related_name

+0

謝謝,我只是忘了它! – Don

+2

... personnaly我不會推薦這個解決方案。您的名字中將有一個反向FK w/o'_set'的名稱,但其他FK則保持不變?這有點不一致。當您稍後添加名爲'bars'的列時會發生什麼?或者不會更好地添加@property'bars',它返回'self.bar_set.all()'? – yedpodtrzitko