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)..?
发布于 2021-01-11 21:17:46
您可以创建一个方法来向字段提供默认值。
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)
另一种方法是重写模型的保存方法,并在保存新对象之前进行计算。
https://stackoverflow.com/questions/65678218
复制相似问题