생성/저장합니다.
my_category.products.create(...)
또는 그와 비슷한 번호 my_category.is_leaf_node() == False
을 호출하면 오류가 발생합니다.
my_category에 이미 제품이있는 경우 my_category.children.create(...)
과 동일하지만 실패 할 것입니다.
이러한 확인은 save 메소드에서 수행됩니까? 커스텀 매니저에서? 아니면 다른 곳? 나는 모델 수준의 검증을 원할 것이다.장고 모델 전에 내가 두 모델이
답변
모델 수준 유효성 검사의 적절한 위치는 clean()
기능입니다. 오류를 설명하기 위해 여기 django.core.exceptions.ValidationError
을 제기 할 수 있습니다. 살펴보기 the documentation for clean()
에서 검사를하고 싶습니다. 처형 됐어? – olanod
clean은 ModelForm 유효성 검사 중에 호출되는 full_clean에 의해 호출됩니다. 어떤 식 으로든 ModelForm을 사용하지 않는다면 일반적으로 객체를 저장하기 전에 ValidationError를 잡아내는 try 블록에서 object.full_clean()을 호출하는 것이 좋습니다. 모델을 작성하거나 뷰를 생성하는 등의 표준 방법을 사용하지 않을 경우 객체를 저장하는 방법을 알아야합니다. – minism
지금은 단위 테스트 만하고, 나머지는 django-rest-framework로 REST API에서 사용할 것입니다. . 당신의 조언에 따라 save() 메소드에서 full_clean()을 호출하고 있는데, 예외를 상위 레벨에서 catch해야합니까? – olanod
- 1. set_all 내가 두 가지 모델이 장고
- 2. 어떻게 내가 두 가지 모델이 두 모델
- 3. 내가 이런 두 가지 모델이 장고
- 4. 장고 내가 모델이
- 5. 내가 두 가지 모델이
- 6. 장고 내가 두 가지 모델이 있고 난이처럼를 조회하고 그들에게
- 7. 장고 사용자 정의 관리자 나는 두 가지 모델이 모델
- 8. 장고 관리자 - 내가 관리자 사이트에 등록 된 모델이 모델
- 9. 장고 내가 4 개 가지 모델이 서브 클래스 모델
- 10. 장고 내가 두 가지 모델을 별도의 모델
- 11. 장고 두 모델
- 12. 장고 두 모델 필터
- 13. 내가 간단한 장고 모델 닮은이
- 14. 장고 모델 나는이 모델이 아닌 DB 필드
- 15. 내가 두 가지 모델이 레일
- 16. 장고 한 형태/두 모델
- 17. 이 방법의 두 가지 모델이 서로 장고
- 18. 장고 내가 모델 아래에있는
- 19. 내가 장고 응용 프로그램에서 ManyToMany 모델이
- 20. 장고 쿼리 내가 모델 A와 B에있는 장고
- 21. 나는 간단한 질문 모델이 장고
- 22. 장고 모델 마이그레이션 두 테이블
- 23. 장고 모델 - 두 테이블의 코드
- 24. 내가 두 가지 모델이 양식
- 25. 두 부모와 연관 될 수있는 장고 모델
- 26. 장고 - 외래 키와 형식을 참조하는 내가 장고 모델이
- 27. 장고 쿼리 내가 계층에 존재하는 세 개의 장고 모델이
- 28. 장고 모델
- 29. 내가 추상 모델 클래스가 장고
- 30. 장고 모델 파생 클래스 내가 '
form.is_valid() 메소드에서 검사를 수행 할 수 있습니다. 양식에서 처리하는 경우 form.is_valid() 메소드를 사용하고, 그렇지 않은 경우 save() 메소드에서 검사 할 수 있습니다. – PepperoniPizza
https://docs.djangoproject.com/en/dev/ref/forms/validation/에서 특정 필드에 대한 유효성을 구체적으로 사용자 정의 할 수 있습니다. https://docs.djangoproject.com/en/dev/ref/forms/validation/# 청소 및 유효성 검사 필드 -the-dependent-on-each-other – akotian
양식을 사용하고 있지 않습니다. 모델 레벨 – olanod