2014-06-17 3 views
3

사회 계정 등록 allauth에 대한 장고 allauth를 사용하여 FIRST_NAME이 3rdparty에서 grabed 자동으로 사용자 이름을 정의합니다. 그래서 예를 들면 다음과 같습니다. facebook John Cucumber가 등록하면 사용자 이름이 "john"이됩니다. 이것을 "john cucumber"로 바꾸고 싶습니다. 이름과 성을 모두 사용자 이름으로 사용하십시오. 문서에서 이것에 대해 아무 것도 보지 못했습니다.Django Allauth 사용자 이름을 변경하는 방법은 first_name입니까?

감사

편집

: 좀 더 설명 :

  1. 익명이 내가 (별명을 사용하여) 사용자가 익명없는 기본으로 그것을 달성하기 위해 노력하고 기본적으로되지 않습니다. 그들은 사용자 이름을 닉네임으로 바꿀 수 있지만 완전히 등록한 후에는 기본적으로 소셜 네트워크에서 전체 이름을 사용합니다.

  2. 등록 나는 또한 한 번 클릭을들을 등록하고 난 첫 번째 장소에서 소셜 네트워크 로그인을 사용하고 그 이유는 (빠르게 로그인 할 빠른 (어떤 형태)입니다 당신은 내 페이지의 사용자 인). 그래서, 나는 등록 양식을 가진 사용자들을 귀찮게하지 않는다. allauth의 현재 설정 아래 앤드류의 게시물에 지적이 많은 이름 충돌의 원인으로 (모든 다른 사람들이 username을 변경해야 할 단 하나의 존있을 수 있습니다). 이름보다 성 (姓)의 충돌이 적습니다. 그러나 이것은 일단이 문제가 해결되면 나중에 나중에 나가는 것입니다.

+0

는 지금까지 내가 문서에서 볼 수 있듯이이있다 '사용자가 가입 할 때 사용자 이름을 입력해야합니다. ACCOUNT_AUTHENTICATION_METHOD이 (가) 이메일로 설정된 경우에도 사용자에게 요청해야합니다. 사용자에게 사용자 이름을 입력하라는 메시지를 표시하지 않으려면 False로 설정하십시오. ' – petkostas

+0

이 사실을 알고 있지만 사용자에게 사용자 이름을 지정하길 바랍니다. 답변 감사합니다. – Stefan

+0

Allauth에는 extract_common_fields 메서드가 있습니다. 아마도 db를 사용하여 db (아마도 pre_save 신호를 사용하여)를 재정의 할 수 있습니다. 미안하지만 allauth를 사용하지 않았으므로 사용자 작성을 무시하는 함수가 있으면 익숙하지 않습니다. – petkostas

답변

2

사용자가 생성 된 사용자 이름과의 충돌을보기 전에 짧은 시간이 걸릴 것으로 생각됩니다. 둘 이상의 "John Smith"가 생기 자마자 문제가 생깁니다.

또한

, 많은 사용자가 자신의 이름으로 자신의 이름을 가지고 있지 선호 할 수 있습니다.

개인적으로 나는 항상 사용자 이름이 아닌 로그인을 위해 전자 메일을 사용합니다. 그러나 그것에 대해 신중하게 생각하는 경우 사용자 이름 선택을 허용하고 기본값을 "%s %s" % (first_name, last_name) 또는 이와 비슷한 형식으로 표시하는 것이 좋습니다.

양식을 보장하기 위해이 표시 , 편집 설정 : documentation에서

SOCIALACCOUNT_AUTO_SIGNUP = False # require social accounts to use the signup form 

:

[true 인 경우 (예 : 사용자 이름 필드를 사용하여 가입 양식을 우회하는 시도, 이메일)를 소셜 계정 공급자로부터 검색합니다. 충돌 가 중복 된 전자 메일 주소로 가입 양식을 인해 발생하면 여전히.

에서 킥 당신은 형태가 렌더링되기 전에 제안 된 사용자 이름을 공급하기 위해 후크를 사용할 수 있어야합니다. 트위터와 부트 스트랩 장고 allauth의

동작하는 예제 *는 https://github.com/aellerton/demo-allauth-bootstrap이다. 그러나 하지 사용하는 사용자 이름을 수행하지만 사회적 가입 후 가입 폼을 표시한다.

* 면책 조항 : 나는 예를 썼다. `ACCOUNT_USERNAME_REQUIRED` 어떤 :

+0

Andrew가 노력에 감사 드리며,이 대안에 대해서도 생각해 봤지만, 내가 원하는 것은 아닙니다. 나는 사용자 이름에 대한 등록 양식을 보여주고 싶지 않습니다. 사용자가 모든 것을 입력해야한다면 사회 계정 등록 손실은 나를 감수 할 것입니다. 또한 익명 성은 해당 페이지에서 선택 사항이 아니어야하므로 사용자 이름으로 기본 성명을 사용하고 사용자가 쉽게 이해할 수없는 경우 변경하십시오. – Stefan

관련 문제