2011-06-30 3 views
-1

J'ai une vue d'index qui valide un formulaire contenant diverses données. Même si la page thankyou.html n'a pas de calculs complexes pour tuer le serveur, je voudrais rendre une page html légèrement différente si thankyou.html est déjà en cache de bas niveau. Pour vous dire la vérité, je ne sais pas quelle clé pour la passer ... Voici le code.Vues du cache de bas niveau Django

def index (demande):

                form = UserForm()

                message = 'de données incorrectes!

                si request.method == 'POST':

                                form = UserForm (request.POST)

                                si form.is_valid():

                                                essayer:

                                                                User.objects.get (code = formulaire.cleaned_data [ 'code'])

                                                sauf (KeyError, ObjectDoesNotExist):

                                                                u = Utilisateur (nom = form.cleaned_data [ 'nom'], nom = forme .cleaned_data ['nom de famille'], address = form.cleaned _data [ 'adresse'], email = form.cleaned_data [ 'email'], phone = form.cleaned_data [ 'téléphone'], le code = form.cleaned_data [ 'code'], )

                                                                u.sauver()

                                                                retour HttpResponseRedirect ('/ merci /')

                                                                #return redirect ('thankyou')

                render_to_response de retour ('index.html', { 'message': message, 'forme': forme},                                                                 context_instance = RequestContext (demande)).

Je suppose que cela est la façon dont je cache à faible niveau, il:

                                si form.is_valid():

                                                key = ???

                                                cached_html = cache.get (clé)

                                                essayer:

                                                                  User.objects.get (code = form.cleaned_data [ 'code'])

                                                sauf (KeyError, ObjectDoesNotExist):

                                                                U = Utilisateur (nom = form.cleaned_data [ 'LastName'], nom = form.cleaned_data [ 'nom'], Adresse = form.cleaned_data [ 'adresse'], email = form.cleaned_data ['email'], téléphone = form.cleaned_data ['téléphone'], code = formulaire.cleaned_data [ 'code'], )
                                                                u.save()

                                                                sinon cached_html:

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

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

                                                                retour HttpResponseRedirect ('/ merci /')

                                                                redirect #return ('thankyou')

Répondre

2

Je pense que dans ce cas, vous devez utiliser la chaîne ('thankyou' + form.cleaned_data [ 'code']) comme la clé