在django中按提交按钮后获取输入文本元素的值

时间:2017-04-15 09:54:58

标签: python html django

我是Django的新手并且上周开始学习它。我的问题是我有一个网页,其中有一个输入文本框和一个提交按钮。 我想捕获在Django中按下提交按钮后在文本框中输入的下一个网页(重定向页面)中输入的输入字符串

This is how the initial web page looks like

我尝试了以下内容:

  

views.py

#View for the initial page
def index(request):
    return render( request, 'index.html')

#View for the Redirecting page -- This is where I want to catch the text box input
def results(request):
    inp_value = request.GET.get('text_search', 'This is a default value')
    context = {'inp_value': inp_value}
    return render( request, 'results.html', context)
  

forms.py

from django import forms

class TextForm(forms.Form):
    text_search = forms.CharField(label='Text Search', max_length=100)
  

的index.html

<form action="/searcher/results/" method="get">
        <label for="results">Enter a string: </label>
        <input id="results" type="text" name="results" value="{{ search_results }}">
        <input type="submit" value="submit">
    </form> 

有人能指出为什么我无法获得文本框的价值吗?

先谢谢

1 个答案:

答案 0 :(得分:0)

request.GET键是输入的名称。因此,在您的情况下,由于您需要<input type="text" name="results">的值,因此您应该从request.GET.get('results')获取该值。

但是,还有一个{{ search_results }}值无法从index视图中呈现。因此,它将始终为空。

def results(request):
    inp_value = request.GET.get('results', 'This is a default value')
    context = {'inp_value': inp_value}
    return render( request, 'results.html', context)