首先免责声明:我正在使用django-mongodb-engine,我观察的问题可能是因为不同的db驱动程序。无论如何,调用MyModel.object.create()似乎实际上创建了一个数据库条目。这与django文档相反,后者声明“请注意,实例化模型绝不会触及您的数据库 ; for that, you need to save().
”Source。这是一个例子:
In [4]: MyModel.objects.filter(email='test')
Out[4]: [<MyModel: MyModel object>]
In [5]: MyModel.objects.create(email='test')
Out[5]: <MyModel: MyModel object>
In [6]: MyModel.objects.filter(email='test')
Out[6]: [<MyModel: MyModel object>, <MyModel: MyModel object>]
如上所述,create()确实“触摸了数据库”。有没有办法阻止这种行为?
答案 0 :(得分:2)
这是预期的行为。 create
在数据库中创建记录。您引用的文档段落是指在内存中实例化模型:
my_instance = MyModel(email='test')