views.py
from textize.models import Textizer
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
def index(request):
if request.method == 'POST':
form = Textizer(request.POST)
print "debug 0" # <---It's not reaching this point when I submit the data via the form
if form.is_valid(): #check to see if the input is valid
print "debug 1"
request.session['text'] = form.cleaned_data['to_textize'] #set the session key:value pair
return HttpResponseRedirect('/results') #redirect to the results page
else:
form = Textizer()
print "debug 2" # reaches here
c = {'form': form}
c.update(csrf(request))
return render_to_response('index.html', c)
def results(request):
text = request.session.get("text", "dummy")
c = {'text' : text}
return render_to_response('results.html', c)
的index.html
<form action="/results" method="POST"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
results.html
<b>Input text: </b>{{ text }}
我正在尝试将数据从“索引”页面传递到“结果”页面。在这种情况下,我想显示键入的字符串并在结果页面上提交。
我的表格有什么问题?
另外,我是否正在形成会话密钥:值是否正确?
答案 0 :(得分:1)
from textize.models import Textizer
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.core.context_processors import csrf
def index(request):
form = Textizer(request.POST or None)
if request.method == 'POST':
print "debug 0"
if form.is_valid():
print "debug 1"
request.session['text'] = form.cleaned_data['to_textize']
c = {'form': form, 'text':request.session.get("text", "")}
c.update(csrf(request))
return render_to_response('index.html', c)
然后模板index.html
<form action="" method="POST"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
result: {{ text }}
足以实现这一目标。