Django низкоуровневые кеш представления - PullRequest
0 голосов
/ 30 июня 2011

У меня есть индексное представление, которое проверяет форму, содержащую различные данные. Несмотря на то, что на странице 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 ('/ спасибо /')

# возврат перенаправления ('спасибо')

1 Ответ

3 голосов
/ 30 июня 2011

Я думаю, что в этом случае вы должны использовать строку ('thankyou' + form.cleaned_data ['code']) в качестве ключа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...