2013-01-11 3 views
2

사용자 프로필 클래스는 다음과 같습니다 실패합니다.는 "중복 항목 오류"

장고 관리자에는 사용자 추가와 관련된 두 가지 양식이 있습니다. 첫 번째 양식은 "사용자 이름", "암호", "암호 확인"및 "사용자 프로필"클래스에서 제공되는 필드와 같은 최소한의 필드가 있습니다. 이 양식에서 "사용자 프로필"필드를 수정하면 "(1062,"키 'user_id'에 중복 항목 '34') "오류로 인해 앱이 중단됩니다. 무결성 오류입니다.

나는 장고를 처음 사용합니다. 나 좀 도와 줄 수있어?

+0

양식이 새 인스턴스를 만들 수있는 기회를 가지고 전에'post_save'가 발생하지 않는 것을 당신이 확실 (따라서 양식을 비참하게 실패하게 만들)? – patrys

+0

번호 post_save는 호출되지 않습니다. 내가 본 다른 점은이 충돌 후 auth_user 테이블에서 생성 된 사용자를 볼 수 있다는 것입니다. – rajpy

+0

코드의 어느 부분에서 예외가 발생하는지 확인하십시오. – patrys

답변

2

내가 본 유일한 시간은 같은 신호가 두 번 울리는 것입니다. 당신의 신호 연결에 dispatch_uid를 추가하는 시도하고는 픽스 잇해야 : 또한

post_save.connect(create_user_profile, sender=User, dispatch_uid='create_profile_user') 

참조 : https://docs.djangoproject.com/en/dev/topics/signals/#preventing-duplicate-signals

+0

감사합니다. 그것은 문제를 해결하지 못했습니다. 삽입이 두 번 일어나고 있습니다 : INSERT INTO'generic_userprofile' ('user_id','email_my_machines','email_others_machines') VALUES (40, 1, 1) INSERT INTO'generic_userprofile' ('user_id','email_my_machines','email_others_machines') VALUES (40, 0, 0) 나는 여기서 무슨 일이 일어나는 지 모른다. – rajpy

+2

해결되었습니다. "primary_key = True"를 user = models.OneToOneField (User, primary_key = True)로 추가했습니다. – rajpy