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

Django测试-获取初始值并反馈,django,django-testing,Django,Django Testing,我有一个基本模型,它引用了外键和许多对象。在“编辑”测试中,您获取视图的id并对其进行更改时,我遇到了一个问题,我很好奇是否有其他人找到了更干净的解决方法。我找到了一个让我走上正轨的帖子 client = Client() response = client.get(reverse("floorplan_update", kwargs={'pk': floorplan.id})) data = response.context['form'].initial

我有一个基本模型,它引用了外键和许多对象。在“编辑”测试中,您获取视图的id并对其进行更改时,我遇到了一个问题,我很好奇是否有其他人找到了更干净的解决方法。我找到了一个让我走上正轨的帖子

    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)

是否有其他人遇到过这种情况,或者有更好的方法来处理这种情况?

不确定,但您可以尝试以下方法:

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

那当然是你在那里的大部分时间。美好的