У меня есть индексное представление, которое проверяет форму, содержащую различные данные. Несмотря на то, что на странице thankyou.html нет сложных вычислений для уничтожения сервера, я хотел бы отобразить немного отличную HTML-страницу, если thankyou.html уже кэширован на низком уровне. Честно говоря, я не знаю, какой ключ это передать ... Вот код.
индекс индекса (запрос):
form = UserForm ()
message = 'Неверные данные!'
if request.method == 'POST':
form = UserForm (request.POST)
если form.is_valid ():
попробуй:
User.objects.get (code = form.cleaned_data ['code'])
кроме (KeyError, ObjectDoesNotExist):
u = Пользователь (фамилия = form.cleaned_data ['фамилия'],
фамилия = form.cleaned_data [ 'фамилия'],
адрес = form.cleaned_data [ 'адрес'],
электронная почта = form.cleaned_data [ 'электронной почты'],
телефон = form.cleaned_data [ 'телефон'],
код = form.cleaned_data [ 'код'],
) * * Тысяча двадцать-один
u.save ()
return HttpResponseRedirect ('/ спасибо /')
# return redirect ('thankyou')
return render_to_response ('index.html', {'message': message, 'form': form}, context_instance = RequestContext (request)).
Полагаю, именно так я и должен низкоуровнево кешировать:
если form.is_valid ():
ключ = ???
cached_html = cache.get (ключ)
попробуй:
User.objects.get (code = form.cleaned_data ['code'])
кроме (KeyError, ObjectDoesNotExist):
u = Пользователь (фамилия = form.cleaned_data ['фамилия'],
фамилия = form.cleaned_data [ 'фамилия'],
адрес = form.cleaned_data [ 'адрес'],
электронная почта = form.cleaned_data [ 'электронной почты'],
телефон = form.cleaned_data [ 'телефон'],
код = form.cleaned_data [ 'код'],
)
u.save ()
если не cached_html:
cached_html = render_to_response ('ty.html', {},
context_instance = RequestContext (запрос))
cache.set (ключ, cached_html, time_until_midnight ())
return HttpResponseRedirect ('/ спасибо /')
# возврат перенаправления ('спасибо')