如何在用户注册后自动生成的用户模型中生成唯一的accountid



这是我的models.py文件

from django.db import models
from django.contrib.auth.models import AbstractUser
from .manager import UserManager

# Create your models here.
class User(AbstractUser):   
account_id = models.IntegerField(unique=True, default=1111111)
log_id = models.IntegerField(unique=True, default=0000000)

username = None 
email = models.EmailField(unique=True)


objects = UserManager()

USERNAME_FIELD = 'email' 
REQUIRED_FIELDS = []

从这段代码中,我可以从管理面板中创建一个帐户id,但我想在用户填写注册表时自动生成一个唯一的帐户id,它应该在管理面板中生成一个独特的帐户id。

这是我的工具.py文件

from random import randint
from .models import *
from django.contrib.auth import get_user_model
User = get_user_model()
def User():
def account_id():
account_id = randint(1000000, 9999999)
print(account_id)
is_unique = User.objects.filter(account_id=account_id).exists()
if not User.account_id:
is_unique = False
while not is_unique:
account_id
User.account_id = account_id
User.save()
else:
account_id()    
User.save()            
```

通常的做法是在模型上使用UUID字段,例如

import uuid
class User(AbstractUser):   
account_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

...

请注意,大多数情况下,只使用模型的默认ID来区分实例就足够了。

最新更新