Как сгенерировать уникальный 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 = []
Из этого кода я могу сделать идентификатор учетной записи из панели администратора, но я хочу генерировать уникальный идентификатор учетной записи автоматически, когда пользователи заполняют форму регистрации, он должен генерировать уникальный идентификатор учетной записи в панели администратора.
Это мой файл tools.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 модели по умолчанию.