ReferenceField和GenericReferenceField之间的差异是什么?

时间:2014-06-17 08:38:52

标签: python mongoengine

在mongoengine领域

ReferenceField和GenericReferenceField之间的差异是什么?两者看起来都与我相似,如果有可能,有人会用例子说清楚

1 个答案:

答案 0 :(得分:0)

当您需要对特定模型进行引用时使用ReferenceField,而当您需要在几个不同模型上进行引用时使用GenericReferenceField

示例:您认为一个人可以发帖但公司不能,但个人或公司可以成为汽车的所有者

class Person(Document):
      name = StringField()

class Company(Document):
      name = StringField()

class Post(Document):
      owner = ReferenceField(Person) # it can be only reference to Person Model

class Car(Document):
      owner = GenericReferenceField() # it can be a Reference to any Model