Django 低级缓存视图
我有一个索引视图,它会验证一个包含各种数据的表单。尽管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')
1 个回答
4
我觉得在这种情况下,你应该用字符串 ('thankyou' + form.cleaned_data['code'])
作为关键字。