我想測試創建一個Thing的視圖,您可以在其中選擇多個用戶(以及其他詳細信息)。Django:列出多對多關係中的元素
我定義了一個Thing模型,其中有一個「用戶」ManyToManyField到用戶模型(來自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()) – PuercoPop