Django,更改用户名

时间:2013-01-16 09:36:58

标签: python django

是否可以更改用户名?

我尝试了以下方法: -

user = User.objects.get(username = username)
user.username = newusername
user.save()

没有任何改变

我可以在管理界面中更改用户名,但客户端要求使用不同的用户名有100多个。

3 个答案:

答案 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()