2012-01-17 2 views
0

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

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

Смежные вопросы