使用会话django存储变量

时间:2014-07-29 08:38:47

标签: python django session cookies

这是我的代码:

views.py:

def some_function(request):
    form = MyForm(request.POST)

    if request.method == 'GET':
        return render_to_response('template.html', RequestContext(request, {'form': form})) 
    elif request.method == 'POST':
        input_word = request.POST['input_word']

        if 'word_choice' in request.POST:
            word_choice = request.POST['word_choice']
        else:
            word_choice = ''

        var1 = HelperClass(input_word).func1()
        table1 = HelperClass(input_word).table_one()
        table2 = HelperClass(input_word).table_two()
        word_selected = word_choice

        content = {
            'form': form,
            'input_word': input_word,
            'var1': var1,
            'table1' : table1,
            'table2' : table2,
            'word_selected': word_selected,
        }

        return render_to_response('result_template.html', RequestContext(request, content))
    else:
        raise Http404

这是result_template.html:

{% block content %}
    <form action="/admin/find-word/" method="post">
        {% csrf_token %}
        <input id="input_word" type="text" name="input_word" maxlength="100"><br />
        <input type="submit" value="Submit" />
    <form />

    <h1>{% trans "You entered" %} "{{ input_word }}" </h1>
    <p>{{ var1 }}</p>

    <form action="/admin/find-root/" method="post">
        {% csrf_token %}

        <h3>{% trans "Table2" %}</h3>
        {% for word in table2 %}
            # Get info from database and display it on the current template.
            <input type="radio" name='word_choice' value="{{ word }}"> {{ word }}<br>
        {% endfor %}

        <h3>{% trans "Table3" %}</h3>
        {% for word in table3 %}
           {# Get info from database and display it on the current template. #}
            <input type="radio" name='word_choice' value="{{ word }}"> {{ word }}<br>
        {% endfor %}

        <p>{% trans "You selected: " %}{{ word_selected }}</p>

        {# Submit the word of choice.#}
        <input type="submit" value="Search">
    <form />
{% endblock %}

我需要向views.py添加代码,以便:


  1. 显示提交第一个表单后呈现的结果 (在确定input_word时)
  2. 新结果显示,重新提交第一个表单时
  3. 提交第二个表单重定向到success_template.html(这部分我可以自己做)
  4. 我知道,我需要在这里使用会话。我尝试了不同的东西,但现在我迷路了。

2 个答案:

答案 0 :(得分:1)

在django中创建一个会话变量,如下所示。

request.session['key'] = value

通过

访问它
request.session['key']     # or
request.session.get('key')

通过

删除它
del request.session['key']

答案 1 :(得分:0)

在django中,您只需将值分配给会话:

request.session['value']

在您的情况下,您必须将word_selected变量替换为request.session['word_selected']