2016-04-01 13 views
0

Bu durumla ilgili olarak inanıyorum ki benim kodum. Üzgünüm, django'ya yeniyim.Django 1.9.4 Farklı bir şablona gösterilecek form verisini alın

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

Benim anlayış
from django import forms 

class SearchForm(forms.Form): 
    client_group_number=forms.IntegerField(label='Group Number', widget=forms.TextInput(attrs={'placeholder': 'Group Number'})) 

, ne olur gerektiğine inanıyoruz bir giriş konacak olmasıdır bir html sayfasına. Kullanıcı gönderdiğinde, giriş veri olarak forms.py dosyasına kaydedilir. Bu veriler, farklı bir html sayfasında görüntülenen views.py dosyasında manipüle edilir. (Umarım bu doğrudur)

Yapmak istediğim, index.html (örneğin: 123) içinden client_group_number (forms.py) için bir girdi almaktır; Grup Numarası = 123 (forms.py veya views.py'den gelen 123) görüntülenecek testresult.html adını verdiğim başka bir html şablonunda görüntülenir.

Bu, başarmak için çok basit bir şey olabilir ve eğer öyleyse özür dilerim, ancak internette ihtiyacım olanı bulamıyorum.

cevap

0

Django, temizlenmiş_data sözlüğündeki form giriş verilerini doğrular. Bunu yeni şablona, ​​yönlendirmede veya oturumda argümanlar olarak iletmeniz gerekir. İşte size bir fikir vermenin basit bir örneği, muhtemelen daha iyi yollar var.

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

Hızlı yanıt için teşekkür ederiz! Ancak diğer html sayfamda hala "Grup Numarası =" alıyorum. Bir şey mi eksik? – johnreeves

+0

Grup numarasını, sonuç_konusundaki istekten almanız ve ardından render işlevindeki context argümanına iletmeniz gerekir. Group_number = request.GET.get ("group_number") gibi bir şey – micebrain

İlgili konular