2014-06-18 1 views
0

Je souhaite définir un cookie de test dans mon CreateView et pouvoir obtenir un résultat de test dans la fonction form_valid (après l'envoi d'un formulaire).Définition d'un cookie de test en vue générique dans Django

Où dois-je mettre le code responsable du réglage du cookie?

self.request.session.set_test_cookie() 

J'ai essayé de passer outre get_form_kwargs et le mettre là-bas, mais cela n'a pas fonctionné.

Mon code:

class MyView(CreateView): 
    def form_valid(self, form): 
     if not self.request.session.test_cookie_worked(): 
      pass 
     else: 
      pass 

Répondre

1

Voir la documentation pour test_cookie_worked:

https://docs.djangoproject.com/en/1.6/topics/http/sessions/#django.contrib.sessions.backends.base.SessionBase.test_cookie_worked

« En raison du travail de cookies façon, vous devrez appeler set_test_cookie() sur un précédent, demande de page séparée. "

Par conséquent, je suggère à set_test_cookie dans la méthode get de la vue:

class MyView(CreateView): 
    def get(self, request, *args, **kwargs): 
     self.request.session.set_test_cookie() 
     super(MyView, self).get(request, *args, **kwargs) 

    def form_valid(self, form): 
     if not self.request.session.test_cookie_worked(): 
      pass 
     else: 
      pass 
Questions connexes