我创建了一个输入表单,以将数据输入Web并将这些输入用于AP呼叫。当我不想刷新页面时,会弹出一个对话框,询问您是否要刷新输入。这很烦人。解决方案是使用HttpResponseRedirect,它可以很好地进行锻炼,但是会丢弃所有输入。然后,尽管如此,将在URL中使用带有“ URL?rds = 2”的变量。如何通过HttpResponseRedirect将输入变量获取到同一站点?还有如何从URL到输入以及从输入到URL获取变量?
HTML输入定义:
<form action="{% url 'page' %}" method="post">
{% csrf_token %}
<input type="number" value="{{request.GET.rds}}" name='rds'>
<input type="submit" value="Search">
</form>
views.py:
从URL输入获取数据
if 'rds' in request.GET.keys():
radius = request.GET.get('rds')
else:
request.GET.rds = '3'
radius = '3'
如果用户按下,则重定向输入。如果需要,请使用“&”添加更多变量。
if request.method == 'POST':
radius = request.POST.get('rds')
redirect_link = request.path_info + '?rds=' + str(radius)
return HttpResponseRedirect(redirect_link)
这会将半径重定向到同一页面,并将rds作为get属性,该属性将由if方法添加。
之后您可以将数据用于。
context = {'radius': radius}
return render(request=request, template_name='realestate/page.html', context = context)
我希望这会有所帮助。也许还有更好的解决方案。