2011-03-24 3 views
0

장고에 utils 디렉토리에 저장되어있는 클래스가 있습니다. 이 클래스는 내 views.py의 모델과 거의 같습니다. 나는 이상한 행동을 경험하고있다. 클래스를 인스턴스화하고 그것에 속한 사전을 갖습니다. 그러나 사전은 다음 페이지로드시 저장/캐시/기억되는 것으로 보입니다.Python/Django - 클래스 사전에서보기가 영구적입니까?

class my_class: 
    id = {"section": None, "sub_section": None, "topic": None, "page": None} 

    def __init__(self, request): 
     self.request = request 
     return True 

    def set_ids(self): 
     self.id['section'] = 1 
     self.id['sub_section'] = 1 
     self.id['topic'] = 1 
     self.id['page'] = 1 

이 샘플 클래스는 내 views.py 파일에 인스턴스화되고 : 인쇄 된 오브젝트 ID의 영구 일부 미친 이유

@login_required 
def example(self): 
    object = my_class(request) 
    print object.id 
    object.set_ids() 

. 즉, 다음 페이지가로드되기 전에 id가 클래스 메소드 "set_ids"로 설정되기 전에 이전 페이지로드에서 가져온 ID가 여전히 존재합니다 ... ??? .... STUMPED!

답변

1

필드 my_class.id클래스 필드가 아닌 인스턴스 멤버, 그래서 모든 my_class 예를 들어 my_class.id의 사본이있다. 당신이 모든 인스턴스에 대해 고유해야하는 id를 원하는 경우에

, 당신은 __init__에 초기화해야합니다

def __init(self, request): 
    ... 
    self.id = { ... } 
+0

Ahhhhhh. 그건 완벽하게 이해가됩니다. 나는 PHP 코딩에 익숙하다. :) 감사! – GregL83