Django HttpResponseRedirectwith URL Variables Processing

问题描述 投票:0回答:1

我创建了一个输入表单,以将数据输入Web并将这些输入用于AP呼叫。当我不想刷新页面时,会弹出一个对话框,询问您是否要刷新输入。这很烦人。解决方案是使用HttpResponseRedirect,它可以很好地进行锻炼,但是会丢弃所有输入。然后,尽管如此,将在URL中使用带有“ URL?rds = 2”的变量。如何通过HttpResponseRedirect将输入变量获取到同一站点?还有如何从URL到输入以及从输入到URL获取变量?

python django httpresponse
1个回答
0
投票

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)

我希望这会有所帮助。也许还有更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.