2016-04-01 18 views
0

これは私がこの状況に関係すると思う私のコードです。申し訳ありません、私はdjangoを初めて使っています。Django 1.9.4別のテンプレートに表示するフォームからの入力データを取得

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ページに変換します。ユーザーがsubmitを押すと、入力はforms.pyにデータとして保存されます。このデータは、異なるHTMLページに表示されるviews.pyで操作されます。

私がしたいことは、forms.pyのindex.html(例:123)からのclient_group_number(forms.py内)の入力を取り込み、views.pyと私がtestresult.htmlを呼び出した別のhtmlテンプレートに表示されます。これはグループ番号= 123(123はforms.pyまたはviews.pyのいずれかから来ています)を表示します。

これは非常に簡単なことであり、それがあれば謝罪しますが、私はインターネット上で必要なものを見つけることができません。

答えて

0

Djangoは、cleaned_data辞書のフォーム入力データを検証します。これをリダイレクトまたはセッションの引数として新しいテンプレートに渡す必要があります。ここにあなたにアイデアを伝える簡単な例がありますが、おそらくより良い方法があります。

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

速やかな返信ありがとうございます!私はまだ他のHTMLページで "Group Number ="を取得しています。何か不足していますか? – johnreeves

+0

result_oneのリクエストからグループ番号を取得し、それをレンダリング関数のコンテキスト引数に渡す必要があります。何かのようなgroup_number = request.GET.get( "group_number") – micebrain

関連する問題