2011-05-11 8 views
0

MySQL의 주소 테이블에 대해 nullable 인 2 문자 필드를 사용하려고합니다. 내 manage.py syncdb 명령을 실행하면 데이터가 MySQL 테이블로로드되지만 오류가 발생합니다.Django가 NULL 대신 Null 용 MySQL 필드에 "(NULL)"문자열을 삽입했습니다.

파일 "C : \ Python27 \ lib \ site-packages \ mysqldb \ connections.py"36 행 (1406, "1 행의 state_province 열에 대한 데이터가 너무 깁니다.)

Django가" SQL에 대한 NULL 값 대신.

문제의 필드는 다음 2

의 길이, 모델 정의의 진정한 = 빈, 진정한 = null 인 "state_province는"데이터의 샘플 세트입니다 :

- model: myapp.Address 
    pk: 53 
    fields: 
     street_address: "71 South St" 
     city: cityname 
     state_province: 
     zip_code: 25455 
     countryID: 199 
     time_zone: -6 
- model: myapp.Address 
    pk: 54 
    fields: 
     street_address: "123 lake street" 
     city: Townname 
     state_province: NH 
     zip_code: 12345 
     countryID: 199 
     time_zone: -5 

편집 :이 거친 소리로 들리 겠지만, 잘 Inserting null into char(1)

답변

0

,하지만 : 나는이 질문이 일어나고 정확히 무엇을 실제로 링크 잊었지만 나는 장고에서이 문제를 해결하는 방법을 모르거나 어디서부터 시작 이것은 핵심적이고 매우 높은 홍보입니다. Django의 내부 동작 중 일부를 망각. 장고에있는 버그라면 잘 문서화되어 더 중요한 것은 이미 고쳐 졌을 것입니다.

이 오류는 manage.py에서 발생하지만 사용자의 코드가 아니기 때문에 MySQL 테이블에서 NULL을 허용하도록 필드가 실제로 설정되어 있지 않으며 장고는 최상의 결과를 얻으려고합니다. 할 수 있습니다.

MySQL 테이블을 점검하고 NULL이 state_province 열에 허용되는지 확인하십시오. 열을 볼 수 SQLyog에 사용

+0

는, MySQL은 필드의 정의는 다음과 같습니다 state_province [VARCHAR (2), NULL] 주소 반대로 : STREET_ADDRESS [VARCHAR (128), NOTNULL] –

+0

나는 단지 데이터의 덤프를했는데 제대로 null로 덤프 된 것처럼 보입니다. 그러나 6 자 길이가 아니라면 필드를 Null 할 수 없다는 사실은 여전히 ​​문제입니다. –