Skip to main content
 首页 » 编程设计

python之Django 中 assertDatabaseHas 的等价物是什么

2024年09月07日27qq号

来自Laravel 背景学习Django。如果我的问题很幼稚,请原谅我。

response = self.client.delete(reverse('details'), kwargs={'pk':pk}, format="json") 
 
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) 

上面的测试通过了,我想更进一步,尝试检查数据库是否真的有这个项目,当然我可以查询数据库并尝试匹配计数。 但是在 Laravel 中,我使用这些方法来检查记录的存在/不存在。

assertDatabaseHas('users', ['id' => 10]); //asserts true if record is present in users table. 
 
assertDatabaseMissing('users', ['id' => 10]); // asserts true if record is not present in users table 

Django 中是否存在类似的东西?

请您参考如下方法:

对此没有具体的断言。

你也许可以使用一个通用的 assertTrue 和 exists 过滤器:

self.assertTrue(User.objects.filter(id=10).exists()) 

(通常您会使用 get() 进行 id 查询,但这不允许 exists() 并且您必须捕获 DoesNotExist 异常如果没有找到。)