我是Python新手,正在嘗試Django。我在頁面請求中看到了對我而言奇怪的行爲。我寫了自己的類,它擴展了內置的TemplateView
類,以便我可以覆蓋該類的get_context_data
方法。在我的這個方法的新版本,我在更改context
像這樣:Python列表追加兩次元素
class adminUpload(TemplateView):
template_name = "adminupload.tpl.html"
def get_context_data(self,**kwargs):
context = super(TemplateView, self).get_context_data(**kwargs)
context['js_paths'] = webapp.settings.template['js_paths']
logger.debug('adding')
logger.debug(context['js_paths'])
context['js_paths'].append('/static/path/to/js/file.js')
logger.debug(context['js_paths'])
return context
而且在我的網址路由器我傳遞請求這個類,像這樣:
url(r'^adminupload$', front.adminUpload.as_view()),
出於某種原因,每次我重新加載頁面時,我的context['js_paths']
列表將獲得更長的一個項目,'/static/path/to/js/file.js'
,這樣如果我重新加載頁面5次,列表將包含5個項目,全部附加到該值的末尾。我可以驗證該方法每個請求只被調用一次,並且通過檢查我設置的調試日誌,該列表在每次請求後似乎會變得更大。
我必須缺少一些非常簡單的東西,某種緩存,不瞭解有關模板上下文的內容。任何正確的方向點將不勝感激。
是'webapp.settings'指您的應用程序的設置?考慮使用'from django.conf import settings'來代替。 –
刪除'context ['js_paths']。append('/static/path/to/js/file.js')'或者檢查列表上的'/ static/path/to/js/file.js' 。 – furas