重复模块

时间:2012-08-15 11:03:44

标签: python django django-models django-views python-module

在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个成员长,但每个成员都添加了它。因此,出于某种原因,即使在页面刷新之后,该对象也会留在内存中。造成这种情况的原因是什么?

2 个答案:

答案 0 :(得分:3)

javascript_resourcesResource 的一个属性,因此如果您要在后续请求中添加内容,它们将“加起来”。

如果您希望每个请求都为空javascript_resources,请将其设为实例的属性(即在__init__中初始化)或在实例化Resource之前将其清空。

答案 1 :(得分:3)

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