On Mon, Aug 1, 2011 at 11:08 AM, Abhilash Inumella <abhilashi.ii...@gmail.com> wrote: > Dear all, > > I have a class QuestionView which is derived from FormView class. Here > is the code snippet to explain my problem: > > class QuestionView(FormView): > .. > context_var1 = y
This declares a class attribute called context_var1, which initially has the value y. When you construct an instance of this class, this is copied to self.context_var1 > def form_valid (self, form): > ... > self.context_var1 = x This updates self.context_var1 > ... > def get_context_data(self, **kwargs): > ... > context['context_var1'] = context_var1 Here you are using the class attribute, rather than the instance attribute. The class attribute is never changed from y, only the instance attribute. You want self.context_var1 here. > ... > return context > > > As shown above, I update a set of context variables in form_valid and > I intend to use these in the template - hence the variables in context > dictionary. The problem with this code is that the change in > context_var1 isn't seen - might be because 'get_context_data' is > called before 'form_valid' method. Is there is a work around for > this? Well, you've got to call the functions in the appropriate order. Try accessing the attribute via self, and see where that gets you. Cheers Tom -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.