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 クラスの属性であるため、後続のリクエストでクラスに何かを追加する場合、それらは「追加」されます。

各リクエストに空を含めるjavascript_resources場合は、インスタンスの属性にするか(つまり、で初期化する__init__)、インスタンス化する前に空にしますResource

于 2012-08-15T11:09:11.247 に答える
3

問題はjavascript_resources、クラス変数として作成したことのようです。メソッド内で初期化を移動してみてください__init__

于 2012-08-15T11:09:31.227 に答える