2013-03-07 5 views
1

Django에서 사용자가 날짜와 숫자를 입력하는 AJAX 호출을 수행하고 있고 해당 번호와 날짜가있는 문서가 이미 있으면 AJAX 호출이 조회됩니다 .django에서 문자열을 현지화 된 날짜로 변환하는 방법

응용 프로그램이 국제화되고 현지화되었습니다. 문제는 AJAX가 유효한 Python/Django 날짜 객체로 보낸 날짜를 해석하는 방법입니다. 이것은 현재 사용자 로케일을 사용하여 수행해야합니다. 내가 찾은

하나의 솔루션이 작동하지 않습니다 는 Django: how to get format date in views?
get_format()는 (우리의 경우 j-n-Y에) 문자열을 반환하지만 strftime()%j-%n-%Y의 형태로 형식 문자열을 기대하고있다.

Django 형식이 stftime() 형식과 다른 이유는 무엇입니까? 현재 우리는 현재 Django 1.5를 사용하고 있습니다.

나는 모든 예제에서 찾을 수있는 날짜가 이미 날짜 개체이고 Python/Django가 서식을 지정한다고 생각합니다. 우리가 필요로하는 것은 현행 로케일을 사용하여 문자열을 날짜로 변환 한 다음, 그것을 포맷합니다. 나는이 표준 문제가 될 것이라고 계산했다,하지만 난 발견하고 시도 가능한 솔루션의 모든

+0

당신이 당신이 구문 분석 할 문자열의 예를 포함하는 경우 질문에 대답하는 것이 더 쉽습니다. – shx2

+0

아, 예를 들어, 오늘 날짜는 07-03-2013 (네덜란드어 형식)입니다. 나는 현재의 로케일이 네델란드어 인 것을 고려하여 데이트 객체로 바꾸고 싶습니다 ... –

답변

2

나에게 대답 단서를 주었다. 특정 유형의 데이터를 해당 필드로 전달하고 to_python()을 호출하여 객체로 변환 할 수 있습니다. 날짜와 내 경우에는 그것은과 같이 될 것이다 :

from django.forms.fields import DateField 

field = DateField() 
value = request.GET.get('date', '') 
formatted_datetime = field.to_python(value) 

에릭

0

그것이 당신의 인생을 만들 것 나에게 소리,
에릭을 ... 작동

감사하지 않는 것 문자열 표현을 입력하는 대신 달력에서 날짜를 쉽게 선택할 수 있습니다. 이 방법은 당신이 얻는 것을 정확히 알고 있습니다.

+0

동의합니다. 클라이언트 측 입력 마스킹을 추가하는 것이 좋습니다. – Brandon

+1

우리는 jQueryUI의 datepicker 인 datepicker를 사용합니다. 이것은 문제를 해결하지 못합니다. datepicker는 네덜란드어 브라우저에서 사용되므로 네덜란드 형식의 날짜를 양식에 반환합니다. 문제는 장고가이 날짜 (문자열)를 적절한 날짜 (객체)로 해석해야하는 서버 측에서 발생합니다. –

0

형식을 알고 있으면 datetime.strptime을 사용할 수 있어야합니다.

아약스 호출과 함께 코드에서 성공적으로 사용했습니다.

자세한 내용은 여기를 참조하십시오 : 장고에 티켓을 제출 http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

+0

죄송합니다 legrisdev, 내 원래 게시물에서 stftime(),하지만 strptime() 의미. 문제는 Django의 get_format()이 j-n-Y를 반환하고 strptime이 % j- % n- % Y를 기대한다는 것입니다. 나는이 문제를 해결하기 위해 문자열 교체를 사용할 수는 있지만,이 문제는 드문 일이 아니며 더 쉬운 방법이라고 생각합니다. –

관련 문제