Django 测试 - 更新视图不会更改数据库对象字段



我的查看的代码看起来像:

if self.request.POST.get('is_useful'):
    help_obj = get_object_or_404(Help, pk=self.kwargs['pk'], answer_to__author__username=self.request.POST.get('sender'))
    help_obj.useful = True
    print(help_obj)
    help_obj.save()
    print(help_obj)
    response = json.dumps({'message': 'marked as useful help!'})

测试它使用以下方式:

def test_logged_user_can_mark_help_as_useful(self):
    self.client.login(username='bunny', password='pass')
    response = self.client.post(reverse('questions:edit-help', kwargs={'pk': 1}), {'is_useful': True, 'sender': 'bunny'})
    content = json.loads(response.content)
    print(self.help1)
    self.assertTrue('useful' in content['message'])
    self.assertTrue(self.help1.useful)

问题在于self.assertTrue(self.help1.useful)在视图中不管help_obj.useful = True。每个打印操作都显示帮助对象具有ID 1,这是唯一用于测试的对象。

第一个断言通过。

任何帮助将不胜感激。谢谢!

您需要从测试中的数据库中重新加载self.help1对象。

最新更新