Python django中生成的唯一引用代码

Python django中生成的唯一引用代码,python,django,Python,Django,我是django的新手,我想为每个注册用户生成一个唯一的推荐代码。该推荐代码将通过电子邮件发送给该用户。我正在使用userena,我不知道如何使用userena。这些是关于这个问题的一些链接,但不太清楚如何使用userena实施 .因此,如果有人对此问题有明确的想法,请与我分享。 干杯您必须为暂挂转介代码创建一个新模型。下面给出了模型语法 import uuid import base64 from django.db import models from django.contrib.a

我是django的新手,我想为每个注册用户生成一个唯一的推荐代码。该推荐代码将通过电子邮件发送给该用户。我正在使用userena,我不知道如何使用userena。这些是关于这个问题的一些链接,但不太清楚如何使用userena实施

.因此,如果有人对此问题有明确的想法,请与我分享。
干杯

您必须为暂挂转介代码创建一个新模型。下面给出了模型语法

import uuid
import base64
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
from django.db.models.signals import post_save
from userena.models import UserenaLanguageBaseProfile
from userena.utils import user_model_label 


class Profile(UserenaLanguageBaseProfile):
    """ Default profile """

    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_('user'),
                                related_name='profile')
    referral_code = models.CharField(max_length=300, blank=True, null=True)


    def get_absolute_url(self):
        return u'/profile/show/%d' % self.id
    def generate_verification_code(self):
        # Generate user's verification code
        # TODO: Move this to the model
        return base64.urlsafe_b64encode(uuid.uuid1().bytes.encode("base64").rstrip())[:25]

    def save(self, *args, **kwargs):
        """
        If this is a new user, generate code.
        Otherwise leave as is
        """
        if not self.pk:
            self.referral_code = self.generate_verification_code()
        elif not self.verification_code:
            self.referral_code = self.generate_verification_code()

        return super(Profile, self).save(*args, **kwargs)
在最后一行中添加这些行。your models.py

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        profile, created = Profile.objects.get_or_create(user=instance)

post_save.connect(create_user_profile, sender=User)
上面提到的行将在创建用户时创建您的用户配置文件


希望这为你工作

我面临一个错误。。。NameError:未定义全局名称“CustomUser”,现在可能会出现,因为作为回报,您已将CustomUser用作Super的参数。如何解决此问题?Yogesh编辑了您现在可以看到的帖子。您的答案很好,也就是说正在生成转介代码,但是当我尝试使用默认的userena编辑配置文件选项编辑用户配置文件时,我遇到了一个错误,如此“配置文件”对象没有“验证\代码”属性,如果您在那里,请帮助我@Yogeshgenerate\u验证\u代码给了我这个错误AttributeError:“bytes”对象没有属性“encode”