我正在使用带有 Flask-MongoEngine 的 MongoDB 作为我的 Web 应用程序的 ORM 组件。
我已经像这样构建了用户文档架构:
from ..core import db
class UserComics(db.EmbeddedDocument):
    favorites = db.SortedListField(db.StringField(), default=None)
class UserSettings(db.EmbeddedDocument):
    display_favs = db.BooleanField(default=False)
    default_cal = db.StringField(default=None)
    show_publishers = db.ListField(db.StringField(), default=None)
class UserTokens(db.EmbeddedDocument):
    refresh_token = db.StringField(default=None)
    access_token = db.StringField(default=None)
    expire_time = db.StringField(default=None)
class User(db.Document, UserMixin):
    # Save User document to this collection
    meta = {'collection': 'users_test'}
    userid = db.StringField()
    full_name = db.StringField()
    first_name = db.StringField()
    last_name = db.StringField()
    gender = db.StringField()
    birthday = db.StringField()
    email = db.EmailField()
    friends = db.ListField(db.StringField())
    date_creation = db.DateTimeField()
    last_login = db.DateTimeField()
    favorites = db.EmbeddedDocumentField(UserComics)
    settings = db.EmbeddedDocumentField(UserSettings)
    tokens = db.EmbeddedDocumentField(UserTokens)
但是,当创建这样的新用户时(我已经省略了行......):
def create_new_user(resp):
    newUser = User()
    ....
    newUser.settings.default_cal = resp['calendar']
    ....
    newUser.save()
    return
我遇到了这个错误:
AttributeError:“NoneType”对象没有属性“default_cal”
在我看来,我没有正确使用 MongoEngines Embedded 文档,但我不知道我哪里出错了。
任何帮助将不胜感激!