2013-09-03 1 views
1

После аутентификации с помощью плагина social auth плагин создаёт нового пользователя с некрасивыми именами пользователей, такими как sergey.kostin.345, я знаю, что некоторые пользователи имеют хорошие шорты на платформах социальных сетей и его ok для поведения по умолчанию, но я хочу дать пользователю возможность изменять имена пользователей. Насколько я понимаю, система django auth не позволяет мне изменять поле User.username с помощью методов. Я также попытался изменить это поле, используя этот код, но, похоже, в django игнорируется.Изменить имя пользователя для аутентифицированного пользователя в django Пользовательская модель

owner = User.objects.get (id=request.user.id) 
owner.username = newusername 
owner.save()  

владелец подлинности пользователя

+0

Я уверен, что этот код будет работать. Вы получаете какую-либо ошибку? – Sudipta

+0

похоже, что ничего не происходит. Возможно, мне нужно выйти из системы прямо перед изменением имени пользователя и входа в систему после изменений? –

ответ

3

Это будет работать, но нет никакой необходимости, чтобы получить пользователь снова. request.user уже является объектом пользователя.

owner = request.user 
owner.username = newusername 
owner.save()  
+1

Даниэль должен я выйти и войти снова после изменения значения имени пользователя? –

+0

Он работает, спасибо –