如何用queryset更新django auth_user?

时间:2016-02-10 06:05:40

标签: python django python-2.7

我使用username =' admin'和密码='哈希'我将使用ID表

更新auth_user
UsermodelUpdate= User.objects.filter(id=RSAEnrcyption().decrypt_RSA(request.session['privateKEY'],GetID)).update(username='ramin')
UsermodelUpdate.set_password(getPassWordUI)
UsermodelUpdate.save()

我收到错误:

IntegrityError: (1062, "Duplicate entry 'ramin' for key 'username'")

2 个答案:

答案 0 :(得分:2)

您正在使用用于获取多个记录的过滤器。当您使用id进行过滤时,您将获得唯一的记录。你可以这样做

UsermodelUpdate= User.objects.get(id=RSAEnrcyption().decrypt_RSA(request.session['privateKEY'],GetID))
UsermodelUpdate.username = 'unique_username'
UsermodelUpdate.set_password(getPassWordUI)
UsermodelUpdate.save()

但是如果你想为多个记录执行这个功能,你可以这样做

UsermodelUpdate= User.objects.filter(id=RSAEnrcyption().decrypt_RSA(request.session['privateKEY'],GetID)).update(username='unique_username')
for user in UsermodelUpdate:
    user.set_password(getPassWordUI)
    user.save()

答案 1 :(得分:0)

UsermodelUpdate.set_password(GetPassWordUI())