gpt4 book ai didi

python - 使用 POST 数据向用户确认通用 FormView POST 成功

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:14 24 4
gpt4 key购买 nike

使用通用的 FormView 我想反射(reflect)一些关于提交回用户的 POST 数据,但我不确定如何最好地做到这一点。

class MyView(generic.FormView):
form_class = MyForm
def get_success_url(self):
return reverse('success')

reverse('success') 重定向到一个简单的

class SuccessView(generic.TemplateView):
template_name = 'success.html'

有没有一种方法可以通过 get_success_url 调用访问 SuccessView 中的 params 对象,或者是否有更好(更简单)的方法如何做到这一点?提亚丹

更新(我的解决方案,但感谢您的想法)

我实际上发现这是解决问题的最简单方法(对我而言):

class SuccessMixin(object):
def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)

if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form, **kwargs)

def form_valid(self, form):
# this is my post processing step which returns the
# feedback data that I want to pass to the user
form_data = form.get_some_data_from_form()
return render_to_response('submitted.html',
{'form_data': form_data,},
context_instance=RequestContext(self.request))

每个 View 都继承了这个 mixin,如果表单有效,那么我会从中提取反馈数据并将其呈现为响应——完全绕过 get_success_url 重定向。我删除了 get_success_urlSuccessView

最佳答案

将数据作为 GET 参数包含在您的成功 url 中。

def get_success_url(self):
url = reverse('success')
# maybe use urlencode for more complicated parameters
return "%s?foo=%s" % (url, self.request.POST['bar'])

然后在您的模板中,访问 GET 数据中的参数。

foo: {{ request.GET.foo }}

关于python - 使用 POST 数据向用户确认通用 FormView POST 成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com