2011-01-31 8 views
0

양식을 만들 때 데이터 묶음을 올바른 형식으로 강제 설정하려면 여러 가지 방법을 정의 할 수 있습니다 (clean_xyz). 모델 단계에서이를 수행 할 수있는 방법이 있습니까?Django 모델 데이터 일관성

어쩌면 필드 설정자를 무시할 수 있습니까? 내가

my_address.postal_code = 'a1b2c3' 

자동 A1B 2C3으로 포맷 된 얻을 것이다 뭔가를 작성하는 경우 나는 있도록합니다. 아마 변환 할 수없는 경우 예외를 throw합니다. 그렇게하면 데이터베이스에 형식이 잘못된 데이터가 전혀 없을 것입니다.

답변

1

모델의 save()를 재정의하면 도움이 될 수 있습니까? a section in the docs that deal with the validation of models있다 장고 1.2

def save(self, *args, **kwargs): 
    # do your formatting 
    self.postal_code = somefancyformattingmethod() 
    # save it to the database 
    super(YourModel, self).save(*args, **kwargs) 
+0

나쁘지 않습니다. 구원에 대해 생각하지 않았습니다. – mpen

3

, 나는 당신이 Model.clean() 보면 좋습니다.

+0

아 ... 나는 그들이 그것을 추가했다는 것을 몰랐습니다! 그들은 폼처럼 clean_FIELD() 메소드를 가지고 있지 않습니다. 오 잘. 이것은 충분히 잘 작동합니다. 감사! – mpen

+0

상황에 따라 사용자 정의 모델 필드를 만들고 여기에 유효성 검사를 추가 할 수 있습니다 (http://stackoverflow.com/questions/1930469/django-custom-model-field-with-validation-how-to 참조). -hook-it-back-to-modelform). – lemonad