2012-10-28 3 views
0

Google 계정과 연결된 이메일 주소를 변경 한 사용자가 있습니다. 그는 더 이상 자신의 User 객체와 관련된 데이터 저장소 레코드와 연관되어 있지 않습니다.GAE의 데이터 저장소 레코드와 연결된 사용자를 변경하려면 어떻게해야합니까?

데이터 저장소 개체의 사용자 속성을 새 이메일 주소로 업데이트 할 수 있습니까? 이러한 레코드를 쿼리하거나 업데이트하기 위해 실제 User 객체를 생성해야합니까? 그렇다면 전자 메일, 닉네임 또는 user_id를 사용해야합니까?

중요한 경우 Python을 사용하고 있습니다.

답변

0

나를 위해 일하고 결국 솔루션의 조각 :

old_user = users.User(email="[email protected]"); 
    new_user = users.User(email="[email protected]"); 
    changed = [] 

    things = model.Ball.all().filter("user =", old_user).fetch(500); 
    for thing in things: 
     thing.user = new_user 
     changed += [thing] 

    if len(changed) >= 500: 
     db.put(changed) 
     return 

    ... 
2

이메일 주소가 Google 계정과 연결된 경우 user_id는 사용자의 고유 영구 ID 인 str을 반환합니다. 이 ID는 사용자가 이메일 주소를 변경했는지 여부에 관계없이 항상 동일합니다.

+0

이 내 질문을 해결하지 않습니다. 사용자에 대해 반환 된 User 객체는 예전과 다릅니다. 예전 사용자 객체와 관련된 레코드를 가져 와서 새 객체와 연관시키는 방법은 무엇입니까? –

+0

다른가? 사용자에게 다른 Google 계정이 있습니까? – voscausa

관련 문제