是否可以更改用户名?
我尝试了以下方法: -
user = User.objects.get(username = username)
user.username = newusername
user.save()
没有任何改变
我可以在管理界面中更改用户名,但客户端要求使用不同的用户名有100多个。
答案 0 :(得分:13)
正如您所注意到的(Django, change username),这是代码中的错误 - 代码示例未反映您的代码。发布的代码示例实际上可以更改User
对象的用户名:
user = User.objects.get(username = username)
user.username = newusername
user.save()
答案 1 :(得分:2)
还有一种可能的情况,即保存后用户名不会改变...
您在User对象中的用户名默认最大长度为30,并且您尝试将用户名更改为超过30个字符且新旧用户名的前30个字符相同;)
答案 2 :(得分:0)
在更改用户名之前,还要确保用户名不存在:
if User.objects.filter(username=newusername).exists():
raise forms.ValidationError(u'Username "%s" is not available.' % newusername)
user = User.objects.get(username = username)
user.username = newusername
user.save()