Django测试 - 获取初始值并将其反馈

时间:2012-01-17 16:19:36

标签: django django-testing

我有一个基本模型,它引用了ForeignKeys和ManyToMany对象。在“编辑”测试中,您正在获取视图的ID并对其进行更改,我遇到了一个问题,我很好奇是否有其他人想出了更清晰的解决方法。我发现this帖子让我走上了正确的道路

    client = Client()
    response = client.get(reverse("floorplan_update", kwargs={'pk': floorplan.id}))

    data = response.context['form'].initial

    # Ideally you should be able to do this..
    response = client.post(reverse("floorplan_update", kwargs={'pk': floorplan.id}),
                           data=data, follow=True)

但你不能这样做。如果你有FK或M2M,你需要先做这个丑陋......

    client = Client()
    response = client.get(reverse("floorplan_update", kwargs={'pk': floorplan.id}))

    data = response.context['form'].initial

    # Ugliness ensues..
    data['document'] = open(__file__)
    data['company']= data['company'].id
    data['target']= data['target'].id

    # Only now can you post..

    response = client.post(reverse("floorplan_update", kwargs={'pk': floorplan.id}),
                           data=data, follow=True)

还有其他人遇到过这种情况还是有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

不确定,但你可以试试这个:

data = response.context['form'].instance.__dict__