是否可以更改用户名?
我尝试了以下方法:-
user = User.objects.get(username = username)
user.username = newusername
user.save()
没有什么变化
我可以在管理屏幕中更改用户名,但有 100 多个客户要求使用不同的用户名。
正如您所注意到的(Django,更改用户名),这是您的代码中的一个错误 - 代码示例没有反映您的代码。发布的代码示例实际上可以更改User
对象的用户名:
user = User.objects.get(username = username)
user.username = newusername
user.save()
还有另一种可能的情况,为什么用户名在保存后没有改变......
您在 User 对象中的用户名默认最大长度为 30,您尝试将用户名更改为超过 30 个字符且新旧用户名的前 30 个字符相同;)
在更改用户名之前,还要确保用户名不存在:
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()