2012-10-20 4 views
1

그래서, template.html에서 내가 사용만들기 사전

{% if dict %} 
{{ s={} }} 
{% endif %} 

오류입니다 - 은 나머지를 구문 분석 할 수 없습니다 : '= {}'에서 'S = {}'. 그것을 고치는 방법?

답변

2

장고 템플릿을 사용하여, 그들은 귀하의 의견에 이루어져야 만 기본 처리가 템플릿에서 수행되어야한다고 할 수 있습니다.

MVC 디자인 패턴을 엄격히 준수하는 것은 이러한 방식입니다.

여기에서 참조 : 당신이 PHP와 같은 언어 을 사용하는 경우 당신은 프로그래밍에 대한 배경 지식이있는 경우 https://docs.djangoproject.com/en/dev/topics/templates/

철학

을, 또는 어떤 혼합 프로그래밍 코드를 직접 , HTML로 Django 템플릿 시스템은 이 아니며 단순히 Python이 HTML에 포함되어 있다는 것을 명심해야합니다. 이것은 의도적으로 설계된 템플릿입니다. 시스템은 프로그램 논리가 아닌 프레젠테이션을 표현하기위한 것입니다.

장고 템플릿 시스템은 유사하게 일부 프로그래밍 구조를 기능 태그 제공 -을 경우 부울 테스트를위한 태그, 등등, 루핑 태그 을위한 -하지만 파이썬 코드를 대응하는 것으로이 단순히 실행되지 않으며, 템플릿 시스템은 임의의 파이썬 표현식을 실행하지 않습니다. 필요에 따라 템플릿 언어에 개의 확장자를 추가 할 수 있지만 아래에 나열된 태그, 필터 및 구문 (기본값 : ) 만 기본적으로 지원됩니다.

어떤 조건에 따라 dict을 만들고 싶은 것들로 보입니다. 아마도 로직을 재정렬하고 뷰에 dict을 생성해야합니다.이 방법으로 파이썬의 모든 기능을 활용할 수도 있습니다.

자세히 설명하면 상황에 맞는 대안이있을 수 있습니다.

+0

오, 고마워. 나는 장고에서 초보자이다. – tim

+0

나는보기에서 사전을 만든다. ({{dict}}). 하지만 왜 dict [ 'dic'의 모든 색인]과 함께 작동하지 않습니까? – tim

+0

사실, 그렇지 않습니다. 템플릿 시스템은 변수'dict'를 찾고 dict 객체는 만들지 않습니다. –

0

템플릿에서이를 수행 할 수 없습니다. 이것은 템플릿을위한 것이 아닙니다. 대신보기 또는 사용자 정의 템플리트 태그에서이 논리를 수행해야합니다.

0

직접 템플릿에 파이썬 코드를 삽입 할 수 없습니다. 그러나 상황에 따라 변수를 특정 값으로 설정할 수 있습니다. 당신은 정말 사전을 만드는 데 사용해서는 안 with tag

{% with alpha=1 beta=2 %} 
    ... 
{% endwith %} 
+0

템플릿에'dict'을 만들 수 없습니다. 'alpha = {}'는 작동하지 않습니다. –

+1

고정 된 인수로 사전을 정의하는 것이 실제로 프로그래밍이 아니기 때문에 정말 슬픈 일입니다. 그러한 방식으로 포함 된 부분 템플릿을 설정하는 것이 매우 유용 할 것입니다. 예를 들어, 다른 페이지 템플리트에 포함시키는 부트 스트랩 양식 생성 템플리트가 있습니다. 나는 정말로 좋지 않은 견해에 고정 된 dicts를 만들어야 만한다. PHP 접근법은 어쩌면 잘못되었지만 장고 접근법 또한 너무 제한적입니다. –