python3 Django model.py 关于id重新设置或自定义的问题(默认生成:32位uuid)

在Django框架中,model.py的id字段通常由系统自动生成,但无法直接修改其名称、长度和默认值。通过执行`makemigrations`和`migrate`命令创建数据库时,系统会默认生成主键。为解决前端显示与数据库数据不一致的问题,可以探讨如何自定义32位uuid作为模型的主键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果了解Django框架model.py机制的小朋友都应该知道
id不需要自己写,执行

python3 manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
python3 manage.py migrate # 创建数据库

都会自动生成id主键,且没办法修改名字和长度还有默认值

好了,现在实现出来

# 用户
class User(models.Model):
    user_id = models.UUIDField(primary_key=True, auto_created=True, default=uuid.uuid4, editable=False)
    user_full_name = models.CharField('用户名', max_length=30, null=True, blank=True, )
    user_name = models.CharField('账号', max_length=30)
    user_password = models.CharField('密码', max_length=30)
    user_email = models.CharField('邮箱', max_length=45, null=True, blank=True)
    user_sex = models.IntegerField('性别')
    user_age = models.IntegerField('年龄')
    user_phone_number = models.CharField('电话号码', null=True, blank=True,max_length=20,)
    user_card = models.CharField('身份证号码', max_length=30)
    role = models.ForeignKey('Role', on_delete=models.CASCADE)
    createby = models.CharFi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值