2012-08-30 3 views
1

그리고 국제화 및 시간대가 끝났으며 마침내 더 재미있는 기능으로 넘어갈 수 있다고 생각했는데 마지막으로 물릴 때가있었습니다. :)Buildin 템플릿 태그가 i18n을 깨뜨린 것처럼 보입니다.

템플릿이있는 한 템플릿에서 자동으로 datetime이 UTC에서 현재 선택된 시간대로 변환됩니다. 또한 다른 문화권 (미국에서 영국으로의 형식)으로 전환 할 수 있으며 그에 따라 날짜 및 시간 형식이 변경됩니다. 단순히 완벽합니다.

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime }}</td> 
    <td>{{ item.conversation_datetime }}</td> 
{% endfor %} 

이제는 전 및 현지화 된 시간의 현지화 된 날짜를 추출해야합니다. 그래서 나는 그곳에 템플릿 태그를 넣고 삶이 좋다고 생각했습니다.

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date }}</td> 
    <td>{{ item.conversation_datetime|time }}</td> 
{% endfor %} 

그러나 인생이 좋았다면 나는 여기 앉아서 이것을 쓰지 않을 것입니까? ;) 이러한 필터를 설정하는 순간이 두 필드의 형식이 미국 문화에 고정되어있는 것으로 보입니다. 날짜 형식은 mm/dd/yyyy이고 시간은 오전 12시/오후입니다.

내가 이전에 성공한 것처럼 영국 언어를 선택하면 더 이상 효과가 없습니다. 내가 enen-gb에 대한 formats.py를 오버라이드 (override)하고 EN/format.py가/오후 오전 12 시간에 해당하는 항목 TIME_FORMAT = 'P'을 가지고 있음을 확인할 수 사실의 문제에 대한

.

en_GB/formats.py는 TIME_FORMAT = 'G:i'이며 24 시간에 해당합니다. 간과 한 템플릿에 필터 태그를 사용하는 데 또 다른 방법이 있다고 생각합니까?

+0

어떤 장고 버전을 사용하고 있습니까? –

+0

1.4.1 감사합니다. – Houman

답변

1

편집 : 두 번째 방법은 해결책입니다. 아래의 설명을 참고하십시오.

당신이 실제로 문서에 언급 관찰 동작은 (date filter 참조)

형식 문자열없이 사용

: {{ value|date }}DATE_FORMAT 설정에 정의 된 형식 문자열이 어떤을 적용하지 않고, 사용됩니다 현지화.

필터는 time과 동일합니다. 나는이 문서에서 볼 수있는, 당신은 localize 필터 현지화를 강제 할 수에서 :

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date:"DATE_FORMAT" }}</td> 
    <td>{{ item.conversation_datetime|time:"TIME_FORMAT" }}</td> 
{% endfor %} 
: 또는

{% load l10n %} 
{% for item in calls %} 
    <td>{{ item.conversation_datetime|date|localize }}</td> 
    <td>{{ item.conversation_datetime|time|localize }}</td> 
{% endfor %} 

, 당신은 당신이 사용하고자하는 설정 (솔루션)를 통과 할 수있다

미리 정의 된 것들 DATE_FORMAT 중 하나가 될 수 있습니다 전달 된 형식, 01 :

문서는 이에 대해 말한다, SHORT_DATE_FORMAT 또는 SHORT_DATETIME_FORMAT이거나 위 표에 표시된 형식 지정자를 사용하는 사용자 지정 형식입니다. 미리 정의 된 형식은 현재 로켈에 따라 다를 수 있습니다.

+0

시므온의 도움에 감사 드리며, 나는이 주제가 대부분의 사람들에게 피한다는 것을 알고 있습니다. :) 나는 당신의 해결책을 모두 시도했습니다. 첫 번째 것은 이전과 똑같지 만 - 문화 - 고정 형식을 무시합니다. 두 번째 것은 더 좋으며 아무것도 나타나지 않습니다. 날짜와 시간은 모두 비어 있습니다. 오늘 오후에 문제를 설명하기 위해 작은 샌드 박스 앱을 만들 것입니다. Django 1.5에 LocalTime이라는 새로운 태그가 있음을 발견했습니다. 장고 소년이이 단점을 알고있는 것 같습니다. https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.localtime 그러나 그들은 localdate를 잊어 버린 것 같습니다. ;-) – Houman

+0

@ Kave : 나는이 솔루션들 중 하나가 효과적 일 것을 정말로 기대하고있었습니다. 나는 나의 프로젝트에서이 특별한 문제를 아직 겪지 않았기 때문에 나는 그것을 문서화에 기초한다고 말해야한다. 해결책을 찾으면 여기에 게시하는 것이 좋습니다. 그렇지 않으면 해결 방법을 만들 수 있습니다. 정말 쉬운 방법이 없다면 장고 개발자들에게 알려주는 것이 좋다. –

+0

안녕 시므온, 미안 데모를 끝내기까지 조금 더 걸렸습니다. 나는이 문제를 보여주는 작은 작은 응용 프로그램을 만들었습니다. https://dl.dropbox.com/u/44307777/Sandbox.zip 잠시 시간 좀 있으시면 연락주십시오. 나는 그것이 작동하지 않는 방법을 메인 페이지에서 매우 명확하게 알고있다. :) 당신이 동일한 문제를 경험했다는 것을 확인할 수 있다면, 그 버그 후보자를 저의 좋은 후보자로 여깁니다. : D – Houman

관련 문제