1

私はこのように持っDocumentています。どのようにマスターのために作成することができます...マスターは私の埋め込みを意味しますEmbeddedDocumentmongoengineReferenceFieldEmbeddedDocumentDocumentDocumentEmbeddedDocument

class Activity(EmbeddedDocument):
    user = ReferenceField(Profile)
    followed_user = ReferenceField(Profile)
    created_date = DateTimeField(default=datetime.datetime.now, required=True)


class Profile(Document):
    username = StringField(max_length=255, required=True)
    password = StringField(max_length=255, required=True)
    email = StringField(max_length=255, required=True)
    activities = ListField(EmbeddedDocumentField(Activity))

パイソンは言った:

 NameError: name 'Profile' is not defined
4

2 に答える 2

1

selfEmbeddedDocumentsでも使用する必要があります

class Activity(EmbeddedDocument):
    user = ReferenceField('Profile')
    user_unrelated = ReferenceField('Profile')
    created_date = DateTimeField(default=datetime.datetime.now, required=True)
于 2012-12-31T08:46:57.940 に答える
0

EmbeddedDocumentsは、 EmbeddedDocumentFieldフィールドタイプを介してドキュメントのフィールドとして使用する必要があります。

したがって、プロファイルクラスは次のようになります。

class Profile(Document):
    username = StringField(max_length=255, required=True)
    password = StringField(max_length=255, required=True)
    email = StringField(max_length=255, required=True)
    activities = ListField(EmbeddedDocumentField(Activity))

注:プロファイルごとに複数のアクティビティがあるため、リストを作成しています

于 2012-12-31T08:38:22.690 に答える