我想在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文件,我在应用程序上下文中添加了这个信号文件到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)

,但仍然,我得到这个后保存的对象,我不能加载值的输入表单。对我来说够了。

最新更新