在Django中,与assertDatabaseHas相当的是什么?

3

我来自 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中是否有类似的东西?
1个回答

3

这个没有具体的断言。

你可以使用一个通用的 assertTrue 以及 exists 过滤器:

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

(通常情况下,您会使用具有id查询的get(),但这不允许exists(),如果未找到,则必须捕获DoesNotExist异常。)

是的。由于异常 get() 不合适,使用 exists() 可以解决问题。 - Shobi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接