Я хочу автогенерировать имя пользователя в django
Я хочу создать собственное имя пользователя для пользователей в django
from django.contrib.auth import get_user_model
from datetime import date
from django.dispatch import receiver
from django.db.models.signals import pre_save
from django.db import models
User = get_user_model()
# auto username
@receiver(pre_save, sender=User)
def set_username(sender, instance, created, **kwargs):
if created:
instance.username = 'User-' + str(date.year) + '-' + str(instance.id)
instance.save()
Итак, я создал этот файл signals.py и добавил этот файл signals в файл app.py в контексте приложения, но все равно ничего не происходит, может кто-нибудь помочь мне сгенерировать имя пользователя при заполнении формы.
это сработало для меня,
from django.contrib.auth import get_user_model
from datetime import date
from django.dispatch import receiver
from django.db.models.signals import pre_save
from django.db import models
import time
User = get_user_model()
# auto username signal
@receiver(pre_save, sender=User)
def set_username(sender, instance, created, **kwargs):
if created:
currentYear = time. strftime("%Y")
instance.username = f'User-{currentYear}-{str(instance.id)}'
instance.save()
models.signals.pre_save.connect(set_username, sender=User)
но все равно, после сохранения объекта я не могу загрузить значение в форму ввода. Достаточно для меня.