2013-04-29 7 views
0

이 같은 모델이 기본 속성은

a1 = A() 
a2 = A(some_field="ccc") 
print "a1 {}".format(a1.some_field) 
print "a2 {}".format(a2.some_field) 

내가 가야

A1의 BBB

a2 ccc

?

+0

시도해 보셨습니까? –

+0

some_field가 필요하다는 오류가 발생합니다. 왜? –

답변

0

기술적으로는 그렇지만 "some_field is required"라고 말한 오류에서 시도한 것처럼 보이지 않습니다. 양식에서 빈 값을 허용하도록하려면 빈 값을 허용하도록 some_field을 설정해야합니다. 유효성 검사가 통과되고 데이터베이스에서 기본값이 사용되도록 필드 생성자에 blank=True을 추가해야합니다.

데이터베이스에 실제로 만들지 않도록 개체를 절대로 저장하지 마십시오.

0

당신이하려는 일에 따라 다릅니다. 폼에서 Model 필드를 사용하지 않으려면 blank=True을 추가 할 필요가 없습니다. default 값을 지정하지 않으면 해당 값을 사용하여 데이터베이스의 필드를 유지할 수 있습니다.

반면에 모델 양식 내에 필드를 사용하려는 경우 blank=True을 모델에 추가하거나 required=False을 모델의 필드에 추가해야합니다.

이제 귀하의 질문과 관련 있습니다. 그것이 당신이 그것을하려고한다면 정확히 당신이 얻는 것입니다.

+0

모델은 ModelForms에서 사용될 때뿐만 아니라 검증 자체를 거칩니다. 양식은'is_valid'가 호출 될 때이 유효성 검사를 사용합니다. 자세한 내용은 [here] (https://docs.djangoproject.com/en/dev/ref/models/instances/#validating-objects)를 참조하십시오. – Ngenator

+0

알 겠어.하지만 빈 속성이없는 셸에서 예제를 테스트 한 결과 기본값으로 db에 저장할 수있었습니다. 그러나 빈 칸이 없으면'ModelForm'은 유효하지 않습니다. 그때 나는 문서 형식의'Models'을 검색하여 이것을 보았습니다 : "이것은 null과 다르다. null은 순전히 데이터베이스와 관련이 있지만, blank는 유효성 검증과 관련이있다. 필드가 공백 = 거짓이면 필드가 필요합니다. " –

+0

무슨 뜻인지 알지만 그는 유효성 검사 오류가 발생하여 양식 검증에 초점을 맞추고 있다고 언급했습니다. 나는 대답에서 그것을 분명히 할 것이다. – Ngenator