首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在创建一个用户(AbsrtactUser)模型,我需要创建一个自动递增的字段。

我正在创建一个用户(AbsrtactUser)模型,我需要创建一个自动递增的字段。
EN

Stack Overflow用户
提问于 2021-01-12 04:53:48
回答 1查看 21关注 0票数 0
代码语言:javascript
运行
复制
    class CustomUser(AbstractUser):
        email =  models.EmailField(unique=True,blank=True,max_length=254, verbose_name='email address')
        phone_number = models.IntegerField(blank=True,null=True,verbose_name="phone number")
        ids = models.UUIDField(blank=True,null=True,default=uuid.uuid4, editable=False)
        #parent_id = models.IntegerField(blank=True,null=True)
        role_id = models.IntegerField(null=True,blank=True)

如何将role_id创建为auto_increment字段。我试着制作role_id字段AutoField,但是这给了我一个错误,我们不能在一个模型中有2个自动字段,而且我不想对django默认的id主键做任何更改,因为我需要那个字段。我们能否将(id主键)引用到(角色id)..?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 05:17:46

您可以创建一个方法来向字段提供默认值。

代码语言:javascript
运行
复制
 def auto_increment():
        last = CustomUser.objects.all().last()
        if not last:
            return 1
        return last.role_id + 1
    
    
class CustomUser(AbstractUser):
        email =  models.EmailField(unique=True,blank=True,max_length=254, verbose_name='email address')
        phone_number = models.IntegerField(blank=True,null=True,verbose_name="phone number")
        ids = models.UUIDField(blank=True,null=True,default=uuid.uuid4, editable=False)
        role_id = models.IntegerField(default=auto_increment)

另一种方法是重写模型的保存方法,并在保存新对象之前进行计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65678218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档