8

是否可以更改用户名?

我尝试了以下方法:-

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

没有什么变化

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

4

3 回答 3

15

正如您所注意到的(Django,更改用户名),这是您的代码中的一个错误 - 代码示例没有反映您的代码。发布的代码示例实际上可以更改User对象的用户名:

user = User.objects.get(username = username)
user.username = newusername
user.save()
于 2013-07-15T21:42:07.657 回答
3

还有另一种可能的情况,为什么用户名在保存后没有改变......

您在 User 对象中的用户名默认最大长度为 30,您尝试将用户名更改为超过 30 个字符且新旧用户名的前 30 个字符相同;)

于 2015-09-01T10:49:53.653 回答
1

在更改用户名之前,还要确保用户名不存在:

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()
于 2018-01-08T19:11:26.353 回答