Python / Django将用户输入作为关键字参数传递?

时间:2016-08-12 18:44:48

标签: python html django forms url

我试图将用户输入的内容作为关键字参数传递给url(即使它不是真正的条目)。当我尝试将输入名称指定为关键字参数时,它将失败。

HTML:
    <p class="search">
            <form method="GET" action="{% url 'job' %}" class="sidebar-form">
                <div class="ogsearchbar input-group">
                    <input class="searchbarz" type="text" name="user_input" id="user_input" placeholder="Enter Job Number" autocomplete="off" />
                    <span class="input-group-btn">
                        <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i></button>
                    </span>
                </div>
            </form>
        </p>

Django的:

 def get_job(request):
    if request.method == 'GET':
        formvar = request.GET['user_input']
    return HttpResponseRedirect('/jobs/' + formvar)

2 个答案:

答案 0 :(得分:1)

你想要什么没有意义。 {{ }}符号表示在呈现模板之前从服务器传递到模板的上下文变量。但是你试图使用一个值,该值仅在用户实际在渲染页面中输入内容时定义。

你可以用一些Javascript来做到这一点,但似乎没有多大意义。从网址中删除参数,然后让表单将其发送到查询参数中,您可以在视图中将其作为request.GET访问。

答案 1 :(得分:0)

我决定只使用javascript,因为我的django代码在刷新页面时没有使用请求方法。