이미 이메일의 계정이하면서 사회 계정으로 로그인을 시도, 다음과 같은 메시지가 표시됩니다 :장고 allauth에서 "account already exists"메시지를 어떻게 바꿀 수 있습니까?
An account already exists with this e-mail address. Please sign in to that account first, then connect your Google account.
지금 내가 그 메시지를 변경하고 싶습니다. 처음에 ACCOUNT_SIGNUP_FORM_CLASS = 'mymodule.forms.MySignupForm'
을 덮어 쓰려고 시도했지만 내 자신의 raise_duplicate_email_error
메서드를 제공했지만 그 메서드는 호출되지 않습니다.
class SignupForm(forms.Form):
first_name = forms.CharField()
last_name = forms.CharField()
boolflag = forms.BooleanField()
def raise_duplicate_email_error(self):
# here I tried to override the method, but it is not called
raise forms.ValidationError(
_("An account already exists with this e-mail address."
" Please sign in to that account."))
def signup(self, request, user):
# do stuff to the user and save it
그래서 질문입니다
: 어떻게 그 메시지를 변경할 수 있습니다양식은 다음과 같습니다?
답변 해 주셔서 감사합니다. 그러나''BaseSignupForm''은''_base_signup_form_class()''함수에서 파생됩니다. 그 자체는''SIGNUP_FORM_CLASS'' 설정에 정의 된 양식 클래스를 가져옵니다. 이것은 위에있는 양식이 될 것입니다. 그래서 그것은 효과적으로 스스로를 수입하려고 시도 할 것입니다. –
이것은 'ValidationError'이므로 사용자가 추가 정보가있는 양식을 제출 한 후에 만 팝업됩니다. 이미 계정이 있지만, 양식이 전혀 표시되지 않고 allauth가 "이 전자 메일 주소가있는 계정이 이미 있습니다"라는 메시지와 함께 로그인으로 리다이렉트 된 경우에는 더 좋지 않을 것입니다. 먼저 해당 계정에 로그인하고 계정을 연결하십시오. " –
또는 사용자를 로그인하고 자동 소셜 계정에 연결하십시오. 이것은 다른 사람들에 대해 확실하지 않은 Google 서약으로 안전합니다. 비밀번호 로그인이므로 AUTHENTICATION_BACKEND를 수동으로 설정해야합니다. –