如何在视图中使用django会话框架?

时间:2013-03-04 11:34:42

标签: django django-sessions

我一直在阅读django会话框架,并没有真正得到它。 我正在创建一个对象,我想知道如何在视图中使用django会话。 这是如何创建一个对象。

def show_checkout(request):
    if order.is_empty(request):
        cart_url = urlresolvers.reverse('order_index')
        return HttpResponseRedirect(cart_url)
    if request.method == 'POST':
        postdata = request.POST.copy()
        form = forms.CheckoutForm(request.POST,postdata)
        if form.is_valid():
            anon_user = User.objects.get(id=settings.ANONYMOUS_USER_ID)
            obj = form.save(commit=False)
            obj.created_by = anon_user
            obj.modified_by = anon_user
            obj.save()
            if postdata['submit'] == 'place order':
                reciept_url = urlresolvers.reverse('checkout_reciept')
                return HttpResponseRedirect(reciept_url)
    else:
        form = forms.CheckoutForm
    context = {
        'form':form,
    }
    return render_to_response('checkout/checkout.html',context,context_instance=RequestContext(request))

感谢任何帮助。 初学程序员。

2 个答案:

答案 0 :(得分:2)

要在会话中保存值,请按键分配:

request.session[key] = value

要从会话中检索值,请按键读取:

foo = request.session[key]

答案 1 :(得分:1)

如果我已经正确理解了您的要求,您可能只需要在obj.save()之后执行此操作:

request.session['obj_id'] = obj.id

在下一个视图中,您可以再次访问该密钥以获取对象ID,然后从db中检索该对象。