1

视图.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)

索引.html

<form action="/results" method="POST"> {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit" />
</form> 

结果.html

<b>Input text: </b>{{ text }} 

我正在尝试将数据从“索引”页面传递到“结果”页面。在这种情况下,我想在结果页面上显示输入和提交的字符串。

我的表格有什么问题?

另外,我是否正确形成了会话键:值?

4

1 回答 1

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 }}

足以让这一切顺利进行。

于 2012-08-04T11:52:24.737 回答