这是我的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来区分实例就足够了。