以下是我认为与此情况相关的代码。对不起,我是django的新手。
views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import SearchForm
def result_one(request):
return render(request, "testresult.html", {})
def get_results(request):
if request.method == 'POST':
form = SearchForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/result/')
else:
form = SearchForm()
return render(request, 'index.html', {'form': form})
urls.py
from django.conf.urls import url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^search/$', "search.views.get_results"),
url(r'^result/$', "search.views.result_one"),
]
forms.py
from django import forms
class SearchForm(forms.Form):
client_group_number=forms.IntegerField(label='Group Number', widget=forms.TextInput(attrs={'placeholder': 'Group Number'}))
根据我的理解,我认为应该发生的是输入将被放入html页面。当用户点击提交时,输入将作为数据保存到forms.py中。此数据在views.py中被操作,该数据显示在不同的html页面中。 (我希望这是正确的)
我想要它做的是从index.html(例如:123)获取client_group_number(在forms.py中)的输入,可以在views.py中访问并在我拥有的另一个html模板中显示名为testresult.html,它将显示Group Number = 123(123来自forms.py或views.py)。
这可能是一件非常简单的事情,如果是这样,我会道歉,但我似乎无法在互联网上找到我需要的东西。
答案 0 :(得分:0)
Django验证clean_data字典中的表单输入数据。您需要将此模板作为重定向中的参数或使用会话传递给新模板。这是一个给你一个想法的简单例子,可能有更好的方法。
if form.is_valid():
group_number = form.cleaned_data["client_group_number"]
HttpResponseRedirect("/result/?group_number=" + group_number)