首页 > 解决方案 > 如何在 django 中更改用户 ID?

问题描述

我只是想在 django 视图中更新用户 ID。但得到:

(1062, "Duplicate entry 'Dave' for key 'username'")

视图.py

from django.contrib.auth.models import User


current_user = request.user
user = User.objects.get(id=current_user.id)
    user.id = 8
    user.save()

它适用于用户名,但由于 id 出现此错误而崩溃。我相信更新auth_user表不是一个好主意。更新后在 id 字段中给出“无”

标签: django

解决方案


您可以采取的方法是创建这样的自定义用户模型。

from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

然后在 settings.py 中,你需要定义用户模型

AUTH_USER_MODEL = 'your_app.User'

推荐阅读