如何在django中创建自动生成的成员身份id

如何在django中创建自动生成的成员身份id,django,python-3.x,Django,Python 3.x,我想根据当前日期和用户名在配置文件表中创建用户的自动生成成员身份id。用户表与配置文件表具有OneToOneField关系。因此,当我创建一个用户时,我必须在注册表中输入username。signals.py在表中为用户创建一个配置文件行。我想当配置文件创建时,它会有一个成员id,它是当前日期和用户名的组合。我的代码如下: singlas.py from django.db.models.signals import post_save, pre_save from .models import

我想根据当前日期和用户名在配置文件表中创建用户的自动生成成员身份id。用户表与配置文件表具有
OneToOneField
关系。因此,当我创建一个用户时,我必须在注册表中输入
username
signals.py
在表中为用户创建一个配置文件行。我想当配置文件创建时,它会有一个成员id,它是当前日期和用户名的组合。我的代码如下:

singlas.py

from django.db.models.signals import post_save, pre_save
from .models import Ext_User
from django.dispatch import receiver
from .models import Profile

@receiver(post_save, sender=Ext_User)
def create_profile(sender, instance, created, **kwargs):
   if created:
       Profile.objects.create(user=instance)
class Profile(models.Model):

    user = models.OneToOneField(Ext_User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics', null=True, blank=False)
    membership_id = models.CharField(max_length=50, default='', null=True, blank=True)

    def __str__(self):
        return f'{self.user.username} Profile'
型号.py

from django.db.models.signals import post_save, pre_save
from .models import Ext_User
from django.dispatch import receiver
from .models import Profile

@receiver(post_save, sender=Ext_User)
def create_profile(sender, instance, created, **kwargs):
   if created:
       Profile.objects.create(user=instance)
class Profile(models.Model):

    user = models.OneToOneField(Ext_User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics', null=True, blank=False)
    membership_id = models.CharField(max_length=50, default='', null=True, blank=True)

    def __str__(self):
        return f'{self.user.username} Profile'
我有一些用户预存到
signals.py中的指南,但我不知道如何理解。

你可以试试这个

@receiver(post_save, sender=Ext_User)
def create_profile(sender, instance, created, **kwargs):
   if created:
       profile = Profile()
       profile.membership_id = str(instance.username) + str(datetime.datetime.now())
       profile.user_id = instance.pk
       profile.save()
将DateTime格式化为所需格式

您可以尝试以下方法

@receiver(post_save, sender=Ext_User)
def create_profile(sender, instance, created, **kwargs):
   if created:
       profile = Profile()
       profile.membership_id = str(instance.username) + str(datetime.datetime.now())
       profile.user_id = instance.pk
       profile.save()
将DateTime格式化为所需格式