2012-01-17 35 views
0

我有一个引用ForeignKeys和ManyToMany对象的基本模型。在“编辑”测试中,您正在采取视图的ID并对其进行更改,但遇到了一个问题,我很好奇是否有其他人找到了更清晰的解决方法。我发现this后这让我开始正确的道路Django测试 - 获取初始值并将它们反馈回

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

不知道,但你可以代替试试这个:

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

这当然得到的你最的方式存在。尼斯。 – rh0dium 2012-01-19 12:40:03