我正在为 django 应用程序编写测试,我遇到了一个问题,即在我应该删除它们后,测试数据库中仍然存在已删除的对象。我正在使用以下工厂class CMSPageFactory(factory.DjangoModelFactory): class Meta: model = CMSPage title = factory.Faker('company') tenant = factory.SubFactory(TenantFactory) key = factory.Faker('slug') protected = False in_navigation = False active = True这是我正在运行的测试def test_example_for_so(self): page = CMSPageFactory() page.delete() self.assertFalse(page)它引发了以下错误: AssertionError: <CMSPage: Fletcher LLC> is not false我一定遗漏了一些非常明显的东西,但对于我的生活,我无法弄清楚是什么。有谁知道我做错了什么?
2 回答

婷婷同学_
TA贡献1844条经验 获得超8个赞
你确定,page
仍然存在于数据库中吗?
调用delete()
django 模型实例(您的工厂应该创建)将删除数据库行,但不会删除您的本地 python 表示:
https://docs.djangoproject.com/en/2.1/ref/models/instances/#django.db.models.Model.delete
为对象发出 SQL DELETE。这只会删除数据库中的对象;Python 实例仍将存在,并且其字段中仍将有数据。
添加回答
举报
0/150
提交
取消