什么是反向通用关系?

时间:2011-06-09 07:18:57

标签: django contenttypes

内容类型上的documentation说明了这一点:

  

如果您知道自己将成为哪种型号   最经常使用,你也可以添加一个   “反向”通用关系   启用其他API。

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

1 个答案:

答案 0 :(得分:3)

如果你的模特有:

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

但是你知道你会经常这样做:

B) Vegetables.get_kitchen()

您可以在Vegetable模型中添加反向关系,而不是手动执行get_kitchen(),它会为您获取Kitchen

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

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