【发布时间】:2012-11-13 09:32:44
【问题描述】:
我想测试创建事物的视图,您可以在其中选择多个用户(以及其他详细信息)。
我定义了一个 Thing 模型,有一个“users”ManyToManyField 到 User 模型(来自 Django 提供的身份验证应用程序)。
这是我的测试代码:
class ViewsTest(TestCase):
def test_create(self):
my_users = [...some User instances...]
response = self.client.post("/create/", {...stuff...,
'users': [user.id for user in my_users]})
self.assertEqual(200, response.status_code)
created_thing = Thing.objects.get(...)
self.assertListEqual(my_users, [user for user in created_thing.users.all()])
这个测试通过了,所以一切都很好,但我对最后的列表理解感到恼火。难道没有更优雅的方式来获取 created_thing.users 作为列表吗?
我正在使用 Django 1.4.1。
【问题讨论】:
-
好吧,我不确定也不能在 atm 尝试,但您可以尝试将查询集转换为列表 list(created_thing.users.all())
标签: python django unit-testing django-models