2012-11-13 2 views
1

내 템플릿에서 변수에 저장된 문자열에 개행이 포함되어 있는지 확인하고 싶습니다. 그러나 수표에 사용 된 문자열 리터럴에서 개행 문자를 이스케이프하는 방법을 찾지 못했습니다. 명백한Django 템플릿의 문자열 리터럴에서 개행 문자를 어떻게 이스케이프합니까?

{% if "\n" in description %} 
... 
{% endif %} 

이 작동하지 않으면 "\"이 자동으로 이스케이프 처리됩니다.

물론 나는 항상 간단한 사용자 지정 필터 또는 모델 메서드를 구현할 수 있지만 더 쉬운 방법이 있어야한다고 생각했습니다. Django 템플릿 컨텍스트 내에서 이스케이프 처리는 문자열 문자가 아닌 HTML 이스케이프 처리와 관련이 있습니다.

답변

1

템플릿에 전달되는 컨텍스트 dict에 키를 넣을 수 있습니다. 값이 "\n"newline이라고 할 수 있습니다. 그런 다음 템플릿에 {% if newline in description %}과 같은 작업을 수행 할 수 있습니다.

EDIT : 장고 소스를 확인했는데 실제로 이렇게하는 기본 방법이 없습니다. 템플릿 문자열 리터럴에서 처리되는 유일한 이스케이프 시퀀스는 백 슬래시 - 따옴표와 이중 백 슬래시입니다.

+0

뷰 코드를 변경하거나 컨텍스트 프로세서 (과장된 것처럼 보일 수 있음)를 도입해야하므로 모든 상황에서 쉽게 사용할 수는 없지만 유효한 해결 방법이 될 수 있습니다. Django 코드를 찾아 주셔서 감사합니다. 두 개의 이스케이프 문자를 하드 코딩하지만 \ n은 포함하지 않을 것이라는 점에 흥미 롭습니다. –

관련 문제