django如何创建指定id用户

问题遇到的现象和发生背景

django 使用框架自带的User时如果想要创建指定id用户或修改用户id该怎么做?
想要创建id为3的用户

img

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

望采纳


在 Django 中,如果想要创建指定 id 的用户,需要在调用 save() 方法时指定 force_insert=True 和 force_update=False 参数。例如:

from django.contrib.auth.models import User

# 创建一个新用户,其 id 为 3
user = User(id=3, username='john', password='123456')
user.save(force_insert=True, force_update=False)

如果想要修改用户的 id,则可以使用 save(update_fields=['id']) 方法,例如:

from django.contrib.auth.models import User

# 获取 id 为 1 的用户
user = User.objects.get(id=1)

# 修改用户的 id
user.id = 3
user.save(update_fields=['id'])

但需要注意的是,Django 中的用户模型 User 默认设置了 id 字段为主键,且不允许修改。因此,在上面的代码中,我们需要在 models.py 文件中将 User 的 id 字段设置为可编辑,例如:

from django.contrib.auth.models import User
from django.db import models

class User(User):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True)

这样,就可以创建指定 id 的用户或修改用户的 id 了。