내 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()))
는하지만, 아무것도 내 템플릿에 전송되지 않습니다. 미리 감사드립니다!
편집 : 파이썬 2.7.11을 사용하고
https://docs.python.org/3/library/stdtypes.html?highlight=update#dict.update "반환 '없음'부분에 유의하십시오. 파이썬은 자바 스크립트가 아니며, 업데이트 메소드는 dict을 리턴하지 않으며, 당신이하는 일은 의미가 없다. 'getBaseInfo()'를 컨텍스트로서 단순히 전달하지 않는 이유는 무엇입니까? – Wolph
@Wolph, 나는 .update()가'None'을 반환한다는 것을 몰랐습니다! 고마워. 내 Django 응용 프로그램은 사전 내에 값을 반환하여 사전을 업데이트 할 수 없도록하는 Python 2를 사용하기 때문에 문맥으로'getBaseInfo()'를 전달할 수 없습니다 ('{getBaseInfo()}'는'{ 'p ': [],'p2 ': []}' –
'{getBaseInfo()}'는'{'p ': [],'p2 '가되지 않는 사전입니다. ': []}'하지만 getBaseInfo()는 않습니다. 'getBaseInfo()'는 이미 사전을 반환하므로 변환 할 필요가 없습니다. 바로 컨텍스트로 사용할 수 있습니다 – Wolph