【发布时间】:2021-03-24 12:21:26
【问题描述】:
我希望在填写 django 表单时打开一个新页面 - 通过按回车键/单击“搜索”输入并使用表单中输入的数据在该页面中显示结果。
forms.py:
class SearchBar(forms.Form):
Search = forms.CharField(label='', max_length=100, widget=forms.TextInput)
带有表单的 HTML 页面如下所示:
index.html
<form class="" action="result" method="post">
{% csrf_token %}
{{ form1.as_table }}
<input class="Search" type="submit" name="" value="Search">
</form>
我想提交这个表单打开一个新页面:result.html
我已将“结果”的 url 设置为上述 HTML 页面:
urls.py
urlpatterns=[
path('result', views.result, name='result'),
]
我已经提取了form1.cleaned_data['Search']在from中输入的数据。
form_input=form1.cleaned_data['Search']
但是,一旦打开结果页面,就显示数据(form_input)没有定义。 显示以下错误:
name 'form_input' is not defined
我无法在 views.py 文件的任何其他函数中使用此数据 (form_input)。
views.py
def index(request):
form1 = forms.SearchBar()
if request.method == "POST":
form1 = forms.SearchBar(request.POST)
if form1.is_valid():
global form_input
form_input= (form1.cleaned_data['Search'])
def result(request):
print(form_input)
我不明白为什么会这样。我什至将变量form_input 声明为global 变量。
【问题讨论】:
标签: python html django django-views django-forms