ReferenceField和GenericReferenceField有什么区别?

0 投票
1 回答
744 浏览
提问于 2025-04-18 10:02

在mongoengine的字段中

ReferenceField和GenericReferenceField有什么区别?这两个看起来很相似,能不能举个例子解释一下?

1 个回答

1

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

撰写回答