您必须创建一个新的模型,以保持推荐代码。下面给出模型语法。
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)
添加这些线在你的上线你的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.how的参数来解决它? Yogesh – zogo
编辑您现在可以看到的帖子。 –
你的答案运行良好,即推介代码正在生成,但是当我尝试使用默认的userena编辑配置文件选项来编辑用户配置文件时,那么我正面临像这样的错误**'配置文件'对象没有属性'verification_code'**如果你在那里请帮助我。 @Yogesh – zogo