2011-11-01 2 views
2

Django 응용 프로그램에는 DateField ('YYYY-MM-DD'형식)가 있습니다. '2011-11-01'문자열을 저장하려고하면 오류가 발생하지만 필드는 NULL 값을 얻습니다.Django는 날짜 필드에 문자열 저장

나는 datetime과 time 라이브러리의 strptime 함수를 사용해 보았지만 같은 문제가있다. 기본적으로 모든 내가 양식 유효성 검사의

 
    if form.valid(): 
     form.cleaned_data['date'] = year + '-' + month + '-' day 
     form.save() 

+0

실제 코드를 보여주십시오. 어떤 필드가 양식에 있습니까? 년, 월, 일은 어디에서 오는가? –

답변

2

부분 데이터를 청소 inclues이 형태

에 발생합니다. cleaned_data dict에는 (문자열) 게시물 데이터가 아닌 python 개체가 포함되어 있습니다.

그렇게 form.cleaned_data['data']datetime 객체가 될 필요가있다 (또는 청소하기 전에 폼이나 포스트 데이터를 편집해야하는) 당신이 날짜 개체를 허용하는 모델 객체를 확인하고이 설정되지 않았 음을 확인해야한다고 생각

0

을 그것은 항상 null이 될 ... 사실 나는 잘못된 개체가보기 또는 저장 메서드가 아닌 날짜 개체를 가져야하는 모델 개체에 있다고 생각합니다. 아마도 여기에 모델 코드를 게시하는 것을 고려해야합니다.

+0

문제는 form.cleaned_data에 데이터를 쓰고 있었고 올바르지 않은 것 같습니다. 올바른 방법은 f = form.save (commit = False) 다음에 f.date = datetime (년, 월, 일) 다음에 f.save() form.save_m2m()을 사용하는 것입니다. 이 또한 당신에게 도움이되기를 바랍니다. – bogtan

+0

내가하는 일이 왜 옳지 않은지 알아보기 위해 조사를하겠습니다. – bogtan