在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个成员长,但每个成员都添加了它。因此,出于某种原因,即使在页面刷新之后,该对象也会留在内存中。造成这种情况的原因是什么?
答案 0 :(得分:3)
javascript_resources
是Resource
类的一个属性,因此如果您要在后续请求中添加内容,它们将“加起来”。
如果您希望每个请求都为空javascript_resources
,请将其设为实例的属性(即在__init__
中初始化)或在实例化Resource
之前将其清空。
答案 1 :(得分:3)
问题似乎是您创建了javascript_resources
作为类变量。尝试使用__init__
方法移动其初始化。