我不明白如何在 Django 1.11 中的 POST 请求后重新填写提交的表单。在 view.py 中如下代码:
class WhoisView(generic.FormView):
template_name = "bgp_app/whois.html"
form_class = forms.WhoisForm
success_url = '.'
req = {}
def post(self, request, *args, **kwargs):
ret = super(WhoisView, self).post(request, *args, **kwargs)
self.req["rqst"] = str(request.POST.get('query', ''))
return ret
def get_context_data(self, **kwargs):
ret = super(WhoisView, self).get_context_data(**kwargs)
if self.req.get("rqst", None) != None:
result = whois.single_request(self.req["rqst"])
ret["result"] = result
self.req["rqst"] = None
return ret
因此,在post我从表单中获取数据,并在get_context_data我执行必要的功能并将执行结果传输到页面中。请求后,表单完全重置,我想避免这种情况。
稍微放低了一点,他就做了他想做的事。下面是代码。不确定这是否是正确的方法