如何从Mongoengine中的ReferenceField访问其他类元素


class User(db.Document):
    email = db.StringField(required=True)
    first_name = db.StringField(max_length=50)
    ref = db.ReferenceField('Post')

class Post(db.Document):
    title = db.StringField(max_length=120, required=True)
    tags = db.ListField(db.StringField(max_length=30))

我有两个类用户和帖子。我想使用以下方法从 Post 类(ref) 访问用户类的元素:

User.objects.first().ref.title

错误:

AttributeError: 'NoneType' object has no attribute 'title'

我该怎么做?如何访问所有元素,而不仅仅是一个元素。提前谢谢。

我不相信你可以用引用字段做到这一点,你必须接受引用并通过以下方式找到对象:

Post.objects(id=User.objects().first().ref["id"]).first().title

但是,如果您将 Post 设置为用户的嵌入式文档,并且使用如下select_related调用 User 对象,则可以

User.objects().first().select_related(1).ref.title

或者,您可以覆盖 json 解释,如下所述:https://stackoverflow.com/a/23990828/493685

最新更新