2012-04-11 3 views
4

그래서 내가 장고를 사용하여 연결하려는이 기존 데이터베이스를 가지고 있고 이미 데이터베이스를 introspected 및 실제로 아무것도 수행하기 전에 모델 정리 해요 , 나는로드 블록에 부딪쳤다. 데이터베이스 테이블 중 하나는 행이 있습니다Django max_length 값을 문자 열 받음 행

"name" character varying NOT NULL

을 내가 python manage.py syncdb을 실행 한 때, 나는 다음과 같은 오류가 발생합니다 :

app.artistname: "name": CharFields require a "max_length" attribute that is a positive integer.

그래서 내가 어떤 문제를 찾아 models.py에 갔다 이고, I는 다음을 참조하십시오

name = models.CharField(unique=True, max_length=-1)

그래서 내 질문은, 어떤 값을 내가 데이터베이스에조차 정의가 값을 설정 한 경우에 MAX_LENGTH를 설정해야합니까? 가능한 최대 값으로 설정합니까?

+0

@agf : Sizeless varying는 PostgreSQL 확장입니다. –

+0

@agf : 트릭을하는 것처럼 보였습니다. 고마워요! : D –

답변

4

다양한 길이의 필드의 경우 CharField 대신 TextField을 사용할 수 있으므로 크기를 설정할 필요가 없습니다.

가변 길이 필드와 TextField은 모두 일반적으로 많은 양의 텍스트를 대상으로합니다.

0

응용 프로그램에서 예상 한대로 상당히 높은 값으로 설정했습니다. 이름 ... 당신이 다르게 믿을만한 이유가 없다면 보통 80 자 정도면 충분합니다.

+0

이것이'innodb '와 관련된'mysql' 질문이라면 나는 255 글자라고 말할 것입니다. 왜냐하면 그것이 색인 될 수있는 것의 한계이기 때문에 우리는 여기서 포스트그레스를 말하는 것입니다. – dnozay

관련 문제