2012-06-26 35 views
0

我已经定义了用户模型,并添加了featured场吧:MongoEngine将不保存默认为false值

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

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

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

但即使有默认值和必需的标志,如果BooleanField设置为False,我也不会在数据库中看到创建的字段。当我在模型中将其设置为True或创建用户时,它会创建它并为其保存适当的True值。 我希望这个字段在创建时总是存在,如果它是False或True。 我在做什么错?

回答

0

你正在运行什么版本?我们对这个问题非常路过的测试用例:

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

+0

它看起来像我的MongoEngine的版本是很老 - 0.5.2。我已经更新到最新版本,现在它可以正常工作。谢谢! –

+0

我也有这个问题,我在'0.8.7'版本。这是完全相同的情况,'BooleanField'的'required = True'和'default = False'。当我创建一个没有指定值的新对象时,它不会为该字段的数据库保存任何值。什么可能是错的? –

相关问题