【问题标题】:Django low level cache viewsDjango 低级缓存视图
【发布时间】:2011-09-26 00:51:23
【问题描述】:

我有一个索引视图,它可以验证包含各种数据的表单。即使thankyou.html页面没有复杂的计算来杀死服务器,如果thankyou.html已经被低级缓存,我想渲染一个稍微不同的html页面。说实话,我不知道要通过什么键...

代码如下:

def index(request):

    form = UserForm()
    message = 'Incorrect data!'
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            try:
                User.objects.get(code=form.cleaned_data['code'])

            except (KeyError, ObjectDoesNotExist):
                u = User(lastname=form.cleaned_data['lastname'],
                        surname=form.cleaned_data['surname'],
                        address=form.cleaned_data['address'],
                        email=form.cleaned_data['email'],
                        phone=form.cleaned_data['phone'],
                        code=form.cleaned_data['code'],
                    )

                u.save()
                return HttpResponseRedirect('/thanks/')
                #return redirect('thankyou')

    return render_to_response('index.html',{'message': message,'form' : form}, context_instance=RequestContext(request))

我想这是我应该低级缓存它的方式:

                if form.is_valid():
                    key = ???
                    cached_html = cache.get (key)
                    try:
                        User.objects.get(code=form.cleaned_data['code'])

                    except (KeyError, ObjectDoesNotExist):
                        u = User(lastname=form.cleaned_data['lastname'],
                        surname=form.cleaned_data['surname'],
                        address=form.cleaned_data['address'],
                        email=form.cleaned_data['email'],
                        phone=form.cleaned_data['phone'],
                        code=form.cleaned_data['code'],
                    )               
                        u.save()

                        if not cached_html:

                            cached_html = render_to_response('ty.html',{ },
                                context_instance=RequestContext(request))

                            cache.set(key, cached_html, time_until_midnight())

                        return HttpResponseRedirect('/thanks/')
                        #return redirect('thankyou')

【问题讨论】:

    标签: python django caching django-views low-level


    【解决方案1】:

    我认为,在这种情况下,您应该使用字符串('thankyou' + form.cleaned_data['code']) 作为键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-19
      • 2018-04-04
      • 2015-05-25
      • 2013-08-18
      • 2016-08-09
      • 2012-04-24
      • 2012-03-10
      • 2021-08-09
      相关资源
      最近更新 更多