我有一個函數可以獲取我的views.py
文件中的一些基本信息,我試圖通過讓它返回一個字典來更新每個頁面的上下文。但是,在render()
函數的上下文字典上使用.update()
似乎不起作用。不能在視圖中的Django上下文中使用.update()函數嗎?
下面是我在做什麼:
def getBaseInfo():
allPages = list(Page.objects.all())
primaryPages = allPages[:5]
secondaryPages = allPages[5:]
return {'p':primaryPages, 'p2':secondaryPages}
def index(request):
return render(request, 'pages/index.html', {}.update(getBaseInfo()))
但是,沒有發到我的模板。提前致謝!
編輯:我使用Python 2.7.11
https://docs.python.org/3/library/stdtypes.html?highlight=update#dict.update 請注意:「Return'None'」部分。 Python不是javascript,更新方法不會返回字典,你所做的事情沒有意義。爲什麼不簡單地將'getBaseInfo()'作爲上下文來傳遞? – Wolph
@Wolph,我不知道.update()返回'None'!感謝那。我無法傳遞'getBaseInfo()'作爲上下文,因爲我的Django應用程序使用Python 2,它不允許通過在字典中返回值更新字典('{getBaseInfo()}'不會成爲'{'p ':[],'p2':[]}',它只是一個沒有值的鍵字典) –
'{getBaseInfo()}'不會變成'{'p':[],'p2 ':[]}'但'getBaseInfo()'確實。 'getBaseInfo()'已經返回一個字典,所以不需要轉換它。它可以作爲上下文直接使用 – Wolph