2011-01-26 3 views
0

기본적으로 데이터베이스의 프론트 엔드 인 웹 앱을 만들려고합니다. 데이터베이스가 하나의 테이블 (여러 테이블과 다른 여러 테이블과의 관계)보다 복잡하기는하지만 주 테이블 중 하나에 추가 할 때 빈 행을 만들고 싶습니다.Django 모델의 DB에 빈 행을 만드는 데 권장되는 방법은 무엇입니까?

내가 사용하려고 시도하는 것보다 장고에서 내 작업을 완료하는 더 좋은 방법이 있다면 궁금합니다.

사용자가 변경 사항을 데이터베이스에 저장하려면 양식을 저장하지 않아도됩니다. 이렇게하려면 사용자가 양식이있는 페이지를 방문하자마자 빈 레코드가 생성되기를 바랬습니다. 기본적으로 사용자가 "새"버튼을 선택하자마자 존재하는 모든 것은 기본 키와 빈 필드가있는 레코드가됩니다.

auto_now_add를 사용하여 설정 한 날짜 필드를 제외한 모든 필드에서 blank = True 및 null = True로 설정했습니다. 사용자가 양식 필드에 데이터를 추가 할 때 양식을 프로그래밍 방식으로 작성하여 데이터를 제출하도록합니다 (즉, 필드를 떠난 후). 사용자가 중간에 편집을 중단하거나 jquery UI 탭을 닫으면 입력 한 모든 데이터가 나중에 사용하기 위해 저장됩니다.

날짜 및 시간 필드의 auto_now_add를 제외하고 모든 필드를 설정 했음에도 불구하고 모델에서 매우 명확하게 표시되는 매우 명확한 필드에 IntegrityError (null 일 수 없음)가 표시됩니다. . 이 일에 대해 더 나은 방법이 있을까요? 그렇지 않다면 null = True로 설정하고 blank = True로 설정할 때 왜이 오류가 표시됩니까? 뷰에 다음 줄이 있기 때문에 오류가 발생했습니다. 다시 말해, 모델에 null = True 및 blank = True 인 필드가 있습니다.

theModel = theModel.objects.create() 

감사합니다.

답변

2

모델이 말하는 내용은 중요하지 않으며 데이터베이스에만 적용됩니다. syncdb는 스키마를 수정하지 않으므로 직접 변경 사항을 적용해야하며 South와 같은 이전 도구를 사용하거나 테이블을 모두 삭제하고 다시 동기화하십시오.

+1

흠. 그것은 생각입니다. 그 변경을 한 후에 syncdb를 끝냈다 고 생각했지만, 사무실 TV 쇼가 혼란 스러웠고 동기화 한 후에 공백을 추가했습니다. – wilbbe01

+1

글쎄. 드와이트 한테 비난하고있어. 얼마나 바보 야? 감사. – wilbbe01

관련 문제