2011-06-30 3 views
-1

私はさまざまなデータを含むフォームを検証するインデックスビューを持っています。 thankyou.htmlページにはサーバを強制終了するための複雑な計算がありませんが、thankyou.htmlがすでに低レベルでキャッシュされている場合は、slighlty異なるHTMLページをレンダリングしたいと思います。真実を伝えるために、私はそれをどのように伝えるべきか分からない...ここにコードがある。Django低レベルキャッシュビュー

DEF指数(要求):

               形式=ユーザーフォーム()

               メッセージ= '不正なデータ!'

                request.method場合== 'POST'

                               形式=ユーザーフォーム(request.POST)

                                form.is_valid場合():

                                               試してみてください。

                                                                User.objects.get(コード=フォーム。cleaned_data [ 'コード'])(KeyError例外、ObjectDoesNotExist)以外

                                               :

                                                                U =ユーザー(LASTNAME = form.cleaned_data [ 'LASTNAME']、 姓=フォーム.cleaned_data ['surname']、 アドレス= form.cleaned _data [ 'アドレス']、 メール= form.cleaned_data [ 'メール']、 電話機= form.cleaned_data [ '電話']、 コード= form.cleaned_data [ 'コード']、 )

                                                             uである。セーブ()

                                                               リターンHttpResponseRedirect( '/感謝/')

                                                                #returnリダイレクト( 'ありがとう')

               戻りrender_to_response( 'index.htmlを' { 'メッセージ':メッセージ、 '形態':フォーム}、                                                                context_instance = RequestContextの(リクエスト))。

私はこれは私が低レベルのキャッシュがそれべき道だと思います:

                                form.is_valid場合():

                                               キー= ???

                                                cached_html = cache.get(キー)

                                               試してみてください。

                                                                  User.objects.get(コード= form.cleaned_data [ 'コード'])

                                       (KeyError例外、ObjectDoesNotExist)以外       :

                                                                U =ユーザー(LASTNAME = form.cleaned_data [ 'LASTNAME']、 姓= form.cleaned_data [ '姓']、 アドレス= form.cleaned_data [ 'address']、 email = form.cleaned_data ['email']、 phone = form.cleaned_data ['phone']、 コード=フォーム。cleaned_data [ 'コード']、 )
                                                                u.save()

                                                                cached_htmlない場合:

                                                                            cached_html = render_to_response( 'ty.html'、{}、 context_instance = RequestContextの(リクエスト))

                                                                           キャッシュ。セット(キー、cached_html、time_until_midnight())

                                                               リターンHttpResponseRedirect( '/感謝/')

                                                                #returnリダイレクト( 'ありがとう')

答えて

2

私はこのケースでは、あなたがキー

としての文字列( 'ありがとう' + form.cleaned_data [ 'コード'])を使用すべきだと思います