2012-08-15 59 views
0

在Django应用程序中,我有一个额外的模块。所以我的应用程序被称为标题,里面有一个模型,视图和一个头文件。在头文件里面我有一个名为resources的类,它可以做我想做的事情,但由于页面刷新的某些原因,它会复制信息。重复模块

观点:

def home(request): 
header = Resources("home") #generate the resources for this page 

return render_to_response('pages/index.html', {'header': header, 'content': test}) 

资源:

class Resources(object): 

javascript_resources = [] 
javascript_files = [] 
style_sheets = [] 

def __init__(self, page_id = "home"): 
    self.page_id = page_id.lower() 
    self.get_status() 
    self.get_meta() 
    self.get_javascript() 
    self.get_style_sheets() 

def get_status(self): 

def get_meta(self): 

def get_javascript(self): 

def get_style_sheets(self): 

所以会发生什么是,在header.javascript_resources名单应该只为3名成员长,但每个重复其添加到它。所以出于某种原因,即使在页面刷新后,这个对象仍留在内存中。这是什么造成的?

回答

3

问题似乎是您创建javascript_resources作为类变量。尝试在__init__方法中移动其初始化。

3

javascript_resources为的Resource类的属性,所以如果你是在后续请求中添加的东西给它,他们将“积少成多”。

如果您希望每个请求有一个空javascript_resources,使其实例的属性(即__init__初始化)或instanciating Resource之前清空。