我有一个表单,它将路径作为输入,分析该目录中的文件和子文件夹,将信息存储在数据库中,然后向用户显示一些有关刚刚解析的文件的统计信息。目前使用Django视图和render_to_response完成此操作。
根据我读过的所有内容,在处理POST时使用HttpResponseRedirect的其他内容是不正确的,因为如果页面被刷新,使用POST数据生成的页面将重新提交表单。
我的问题是,由于分析了所提供路径上的文件,最终会显示大量摘要数据。如何使用httpResponseRedirect显示该数据?由于数据量的原因,使用django.core.urlresolvers.reverse
将其作为GET参数发送似乎是不可行的。
答案 0 :(得分:2)
您可以将数据放在request.session
上答案 1 :(得分:0)
我假设您的POST句柄从提交的表单数据中创建了一些数据库对象,这是正确的吗?如果是这样,那么你可以做这样的事情(:
my_obj = MyModel.objects.create(**form.cleaned_data) # This is the part yuo already have, most probably expressed with some other code, but still..
return HttpResponseRedirect('/url/to/redirect/?id=%d' % obj.id)
重定向应该实际上使用reverse()函数,我认为你应该有一个用于编辑MyModel对象的URL。然后你可以这样做:
return HttpResponseRedirect(reverse('edit-mymodel', (), {'id': obj.id}))
相关网址如下:
url('^edit/mymodel/(?P<id>\d+)$', 'apps.myapp', name='edit-mymodel')
答案 2 :(得分:0)
一个粗略但简单的解决方案是将您的数据写入json文本文件,然后在重定向页面中读取它(这也可以帮助您避免在刷新页面时重建数据)