如何在基于django类的视图中从同一个类中的另一个方法访问一个方法的变量

时间:2015-08-17 06:52:42

标签: python django django-class-based-views

我需要从基于django类的视图中的另一个方法访问方法变量的值。我在类变量中将变量定义为none。我在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 个答案:

答案 0 :(得分:2)

原因是get_context_datapost之后被称为post运行后,y尚未设置。

无论如何,你不应该覆盖post。您还没有说明您需要对该变量做什么,但肯定有更合适的方法来覆盖。

另请注意,仅在方法内分配y并不会对该方法产生任何影响:您需要分配到self.y。并且类级别的赋值是没有意义的,你应该删除它。