from django.contrib.auth.models import User
a = User.objects.create_user("1","2","3")
b = User.objects.create_user("1","2","3")
오류없이 아직 ...django의 create_user 메소드가 유일성을 검증하지 않는 이유는 무엇입니까?
a.validate_unique()
ValidationError: {'username': [u'User with this Username already exists.']}
나는 B가 create_user
의 일부로 저장 될 때 유효성 검사 오류를 받게 될 것입니다.
Django Model Instance Reference에서 '저장하면 어떻게됩니까?'섹션에는 저장 시점에 대한 설명이 없습니다.
django-nonrel 사용으로 인한 의도적 인 디자인 결정 또는 부작용입니까? 나는 관계형 데이터베이스가 IntegrityError 또는 비슷한 것을 반환 할 것으로 기대했을 것이다.
감사! Django-nonrel (Mongo 사용)을 사용하고 있지만 Mongo가 고유성 제약을 따르기에 충분히 좋을 것으로 기대합니다. 내 솔루션은 제출하기 전에 유효성 검사를 수행 한 내 자신의 create_user 함수를 작성하는 것으로 끝났습니다. 그게 합리적이라고 생각하니? (나는 그의 사용자를 생성하기 위해 양식을 사용하지 않는다). – AlexeyMK
그건 보통 일을하는 일반적인 방법입니다. 데이터베이스 제약 조건은 실제로 최종 방어선이며 트리거 할 때 많은 것을 알려주지 않으므로 데이터베이스에 커밋하기 전에 입력 내용의 유효성을 검사하는 것이 가장 좋습니다. –