2015-08-17 1 views
0

Мне нужно получить доступ к значению переменной метода из другого метода в представлениях класса на основе django. Я определил переменную как нет в переменной класса. Я создал два метода внутри класса Джанго, как, как показано нижеКак получить доступ к переменной одного метода из другого метода в пределах одного класса в классах, основанных на классе django

class XXXXX(UpdateView): 
    y = None 

    def get_context_data(self,**kwargs): 
     y = 10 
     return super(xxxxx,self).get_context_data(**kwargs) 

    def post(self,request,*args,**kwargs): 
     # Here i want to access the value of variable y which is in get_context_data method 
     # i have tried to access like **self.y**. But am getting the value as **None** 

Может кто-нибудь помочь мне найти то, что ошибку я сделал

+1

'self.y = 10'? –

+0

Я пробовал, как вы сказали. но он не работает –

+1

Вы уверены, что 'get_context_data()' называется BEFORE 'post()'? Если я правильно помню, это называется, когда вы создаете шаблон. –

ответ

2

Причина заключается в том, что get_context_data называется послеpost. Когда post работает, y еще не установлен.

В любом случае вы не должны переопределять post. Вы не указали, что вам нужно делать с этой переменной, но, безусловно, есть более подходящий метод для переопределения.

Также обратите внимание, что только назначение y внутри метода не имеет эффекта вне этого метода: вам необходимо назначить self.y. И назначение класса нецелесообразно, вы должны удалить его.