Тестирование Django - Взятие начальных значений и их обратная связь - PullRequest
0 голосов
/ 17 января 2012

У меня есть базовая модель, которая ссылается на объекты ForeignKeys и ManyToMany. В «редактировании» тестирования, когда вы берете идентификатор вида и вносите в него изменения, я столкнулся с проблемой, и мне любопытно, нашел ли кто-нибудь другой более надежный обходной путь. Я нашел этот пост, который направил меня по правильному пути

    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 Ответ

1 голос
/ 17 января 2012

Не уверен, но вы можете попробовать это вместо:

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