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

4

2 回答 2

3

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

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

于 2012-08-15T11:09:11.247 回答
3

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

于 2012-08-15T11:09:31.227 回答