2011-06-09 86 views
0

上CONTENTTYPES的documentation这样说:什么是反向通用关系?

如果你知道你会使用最频繁是哪个型号 ,你还可以添加 “反向”通用的 关系启用其他API。

但是他们的实际用途是什么?我不明白。

回答

3

如果你有一个模型:

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

但你知道你会经常做的事:

B) Vegetables.get_kitchen() 

而不是做get_kitchen()手动的,你可以在Vegetable添加反向关系模型,它会得到你的Kitchen

这种反向关系使用ForeignKey自动添加到OneToMany关系的另一个模型中,因为您知道哪些模型将处于关系的两侧。

由于使用通用关系,它可以是任何模型,Django不会为您添加反向关系。如果你觉得你需要它,你必须手动指定它。