【问题标题】:MongoEngine won't save default False valueMongoEngine 不会保存默认的 False 值
【发布时间】:2012-06-27 13:24:47
【问题描述】:

我已经定义了一个用户模型并添加了一个featured 字段:

class User(Document):
    email = EmailField(required=True)
    featured = BooleanField(default=False, required=True)

然后我从这个模型创建一个用户并保存它:

user = User(email=email, featured=False)
user.save()

但即使有默认值和必需标志,如果 BooleanField 设置为 False,我也看不到在 db 中创建该字段。当我在模型中将其设置为 True 或创建用户时,它会创建它并为其保存正确的 True 值。 如果它是 False 或 True,我希望该字段始终存在于创建中。 我做错了什么?

【问题讨论】:

    标签: python mongodb mongoengine


    【解决方案1】:

    你运行的是什么版本?对于这个问题,我们有一个通过的测试用例:

    见:https://github.com/MongoEngine/mongoengine/blob/master/tests/test_document.py#L2881-2893

    【讨论】:

    • 看起来我的 MongoEngine 版本已经很旧了 - 0.5.2。我已将其更新到最新版本,现在它可以正常工作了。谢谢!
    • 我也遇到了这个问题,我的版本是0.8.7。情况完全相同,BooleanField 既是 required=True 又是 default=False。当我在未指定值的情况下创建新对象时,它不会将任何值保存到该字段的数据库中。有什么问题?
    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多