Django 1.9.4从表单中获取输入数据以显示到另一个模板

时间:2016-04-01 18:57:30

标签: python django

以下是我认为与此情况相关的代码。对不起,我是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)。

这可能是一件非常简单的事情,如果是这样,我会道歉,但我似乎无法在互联网上找到我需要的东西。

1 个答案:

答案 0 :(得分:0)

Django验证clean_data字典中的表单输入数据。您需要将此模板作为重定向中的参数或使用会话传递给新模板。这是一个给你一个想法的简单例子,可能有更好的方法。

if form.is_valid():
  group_number = form.cleaned_data["client_group_number"]
  HttpResponseRedirect("/result/?group_number=" + group_number)