장고를 통해 데이터베이스에 전화 번호 (US)를 저장하고 싶습니다. 내가 달릴 때 나는Django CharField가 MySQL에 올바르게 삽입되지 않았습니다.
from django.db import models
class Number(models.Model):
phone_number = models.CharField("Phone Number", max_length=10, unique=True)
이 : 나는 그것을 확인하면
python manage.py sql myapp
내가
BEGIN;
CREATE TABLE `demo_number` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`phone_number` varchar(10) NOT NULL UNIQUE
)
;
있어, 오류가 없었다.
python manage.py validate
0 errors found
그래서 MySQL의 콘솔에서
python manage.py syncdb
를했다, 나는 참조 : 세트
mysql> select * from myapp_number;
Empty set (0.00 sec)
mysql> describe myapp_number;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| phone_number | varchar(10) | NO | UNI | NULL | |
+--------------+-------------+------+-----+---------+----------------+
2 행 (0.03 초)`python manage.py shell
에서 다음
, 내가 할
from demo.models import Message, Number, Relationship, SmsLog
n=Number(phone_number='1234567890')
n.save()
내가 MySQL을 콘솔에서 다시 확인하면
, 나는 참조 :
mysql> select * from myapp_number;
+------------+--------------+
| id | phone_number |
+------------+--------------+
| 2147483647 | 1234567890 |
+------------+--------------+
1 row in set (0.01 sec)
가 왜 id
큰 숫자인가? 사실, 그 때문에 나는 더 이상 전화 번호를 삽입 할 수 없습니다. 예를 들어, python manage.py shell
n=Number(phone_number='0987654321')
n.save()
IntegrityError: (1062, "Duplicate entry '2147483647' for key 'PRIMARY'")
내가 장고에 새로운 오전 (사용 장고 1.5 MySQL 서버 버전 : 5.1.63). 누군가 제가 명백한 실수를 지적 할 수 있다면, 나는 그것을 매우 높이 평가할 것입니다. 부수적으로, CharField
의 max_length
을 15 개로 확장하고 싶다면, 가장 간단하고 깨끗한 (즉, 기존의 설정을 망쳐 놓지는 않은) 방법은 무엇입니까? 고맙습니다.
감사합니다. @Alasdair. 당신이 추천 한대로, 나는 앱을 리셋 (프로세스의 모든 것을 버렸습니다)하고 작동합니다. 나는 이것을 2 시간 동안 풀려고했다는 것을 믿을 수 없다. 가능한 경우 아래의 후속 질문에 답하십시오. 다시 감사합니다! – user1330974
다행니다. – Alasdair