2011-06-09 55 views
0

上CONTENTTYPES的documentation這樣說:什麼是反向通用關係?

如果你知道你會使用最頻繁是哪個型號 ,你還可以添加 「反向」通用的 關係啓用其他API。

但是他們的實際用途是什麼?我不明白。

回答

3

如果你有一個模型:

A) Kitchen ---generic relation---> any food 

但你知道你會經常做的事:

B) Vegetables.get_kitchen() 

而不是做get_kitchen()手動的,你可以在Vegetable添加反向關係模型,它會得到你的Kitchen

這種反向關係使用ForeignKey自動添加到OneToMany關係的另一個模型中,因爲您知道哪些模型將處於關係的兩側。

由於使用通用關係,它可以是任何模型,Django不會爲您添加反向關係。如果你覺得你需要它,你必須手動指定它。