2010-02-03 4 views
3

나는 장고와 파이썬을 처음 사용했다 ...장고 템플릿에서 별칭 필드 이름을 사용할 수 있습니까?

나는 10 가지 일반적인 필드 attrib_00에서 attrib_09까지 포함하는 모델을 가지고있다.

나는 필드를 장고 템플릿 문자열에 대한 컨텍스트로 전달합니다.

더 많은 의미있는 이름을 템플릿에 사용하고 싶습니다.

템플릿 문자열은 다른 모델에서 가져오고 연관된 별칭 이름의 쉼표로 구분 된 목록을 포함하는 필드를 추가하는 것을 염두에 두어야합니다. 목록에서 첫 번째 별칭이 attrib_00에 매핑되고 두 번째가 attrib_01에 매핑됩니다.

일반 키가 별칭으로 대체되도록 렌더링 전에 컨텍스트를 수정해야한다고 생각합니다.

여기 올바른 길에 있습니까?

더 좋은 방법이 있습니까?

감사합니다, 에드

P.S.

(추가 코멘트 버튼은 나를 위해 작동하지?)

난 정말 아직 코드가 없습니다. 어쩌면 내가 습득하려고하는 것을 설명해야한다. ...

나는 많은 이베이 목록을 유지하는데 도움이되는 기존의 응용 프로그램을 델파이로 작성했으며이 파일을 장고/파이썬 웹 응용 프로그램으로 에뮬레이션하고 싶다. .

각 제품/목록은 범주에 속하며 각 범주에는 일련의 속성이 있습니다. 예를 들어, 바지는 color, waist_size 및 leg_length를 가질 수 있습니다. 각 카테고리의 속성 수와 유형은 다양하지만 10을 초과 할 수는 없습니다.

예를 들어 attrib_00을 한 카테고리의 크기에 사용하고 다른 카테고리에서 금속을 말하면서 일반적인 필드 이름을 사용하는 방법을 알 수 있습니다 템플릿에서.

단지 정보 : - 응답을 보내기 전에 렌더링 프로세스를 여러 번 호출하는 뷰에서 반복 작업을하고있는 것 같군요?

+0

몇 가지 코드를 게시하십시오! 너 어떻게 끈을 얻었 니? 당신은 어떻게 그들을 문맥에 넘겨 줍니까? –

답변

5

보기에서 템플릿으로 전달하기 전에 컨텍스트에서 별칭을 만들라고 말합니다.

c = Context({'foo': attrib_01, 'bar': attrib_02, ...}) 

이 기능을 새로운 기능에 연결하면 DRY를 깨뜨리지 않아도됩니다.

업데이트 :
실제로는 템플릿 내에서 실제로 매핑합니다. 템플릿은 결국 템플릿입니다.당신이 생각하는 것처럼 작업에 가까이오고있는 유일한 방법은 {% with %} 블록 :

{% with attrib_01 as foo %} 
    <div class="foo">{{ foo }}</div> 
{% endwith %} 

그것은 가능성이 작동합니다,하지만 난 오히려 추한 얻을 수있는 우려하고있다.

+0

그건 제가 생각했던 것만 큼 당신이 설명했던 것보다 훨씬 낫다고 생각했습니다. ; o) 하지만 템플릿이 템플릿에 별칭을 정의하는 방법 일지 궁금하고/기대하고있는 범주와 일대일로 매핑하기 때문에? – FxFocus

+0

'{% with %}'블록에 대한 정보를 추가했습니다. –

+0

네, 어떻게 지저분 해지는 지 알 수 있습니다. 나는 너의 첫 번째 제안을 고수 할 것이다. 고마워, 에드. – FxFocus

0

번역 사용은 어떻습니까?

attrib_00 = models.TextField(_('attrib_00'), blank=True, null=True) 

그런 다음 필요에 따라 attrib_00에 대해 다른 번역이 있어야합니다.

+0

번역에 대해 아직 모릅니다. 언급 해 주셔서 감사합니다. – FxFocus

관련 문제