2011-05-03 6 views
1

장고 응용 프로그램을 가지고 있는데 내 템플릿에서 "회사 ID"가 어디에 있든간에 변경하고 싶습니다. "Company id"라고하는 모든 템플릿에서이 변경을해야하기 때문에 매우 지루할 수 있습니다. 그래서 나는이 엔트리를 저장할 수있는 또 다른 파일을 만들 수있을 것이라고 생각했다. Django : html 템플릿에서 변수를 가져 오는 방법

company_no = "Company id" 

config.py

내 forms.py 파일에서 작업 할 수 있습니다. 나는 템플릿 같은 일을 할 수있는 방법을 다음

forms.py

from mmc.config import company_no 

을 말함으로써 company_no 가져올 수 있지만? 템플릿에서 company_no 가져 오기 - 거기에 방법 라운드가 무엇입니까?

+0

Django 전문가가 없지만 해당 변수를 매개 변수로 사용하여 템플릿을 렌더링 할 수 없습니까? 그것은 플라스크가하는 것입니다. – Blender

+0

@Blender Django도이 작업을 수행합니다. 그러나 "Company Id"라는 프로그램의 모든 텍스트를 변경하고 싶습니다. 내 프로그램에서 "회사 ID"라고 할 때마다 명령 할 수있는 구성 파일에 일부 값을 넣을 수 있다면 효과가 있다고 생각합니다. – Shehzad009

답변

1

Blender가 말했듯이 템플릿을 렌더링 할 때 컨텍스트의 일부로 이와 같은 변수를 전달해야합니다. 함수에로드 된 구성에 공통 항목이 저장된 사전이나 명명 된 튜플을 만들 수 있습니다.

많은 템플릿에 동일한 데이터가 표시되는 경우 템플릿 상속을 사용하고 특정 기본 템플릿과 관련된 컨텍스트 조각을로드하는 메서드를 사용할 수도 있습니다.

+0

회사 ID는 ** 변수가 아닙니다 **. 내 템플리트의 일반 텍스트 (레이블과 같은) 일뿐입니다. 그래서 '회사 ID'라는 평문을 모두 바꾸고 싶다면 이 파일을 다른 파일에 저장할 수있는 일종의 파일을 만들고 싶습니다. 변경을해야하는 경우 일부 구성 파일을 편집하여 변경 사항을 더 빨리 만들 수 있습니다. – Shehzad009

+1

config에서 변수로 변수를로드 한 다음 템플릿을 렌더링 할 때 컨텍스트에 전달하는 방법을 조언했습니다. – marr75

+0

Btw, 일부 값이 모든 (또는 거의 모든) 템플릿에서 사용되는 경우 Cez 및 Daniel이 설명한 컨텍스트 프로세서 접근 방식을 사용합니다. – marr75

0

공유 템플릿을 만들고 include을 사용하여 기본 템플릿에로드 할 수 있습니다. 그런 다음 공유 템플릿에서 컨텍스트 변수를 생성하고 평소처럼 렌더링하는 custom template tag을로드하고 호출 할 수 있습니다.

또는 custom context processor을 만들어 컨텍스트 인스턴스에 데이터를 자동으로로드 한 다음 공유 템플릿에서 평소대로 렌더링 할 수 있습니다.

2

이것은 context processors을위한 것입니다. 회사 이름을 settings.py에 정의한 다음 거기에서 가져 와서 사전에 반환하는 컨텍스트 프로세서를 작성합니다. 그러면 템플릿을 렌더링하기 위해 RequestContext를 사용하는 한 모든 템플릿에서 사용할 수 있습니다.

+1

+1은 RequestContext의 요구를 언급합니다. – Cez

+0

'회사 ID '는 변수가 아닙니다. 그것은 기본적으로 헤더로서 많은 테이블에 입력 한 것입니다. 그러나 회사 ID를 편집하여 '회사 표시'로 변경하려면 각 템플릿을 검토하고 변경하는 일이 지루할 것입니다. 한 번 변경하면 도움이 될 것입니다. – Shehzad009

+1

하지만 그건 내가 말한거야! 그것을 settings.py에서 정의한 다음 컨텍스트 프로세서를 사용하여 모든 템플릿에 추가하십시오. 그게 네가 물었던 것과 모순 되는가? –

관련 문제