2014-04-05 31 views
0

我在Django新的,我想生成与注册。这个推荐码将通过电子邮件发送给user.I每个用户唯一推荐码正在使用userena和我不知道如何与userena。这些都是对这个问题的一些联系,但不太清楚如何与userena独特推介代码生成在Django

https://github.com/byteweaver/django-referral

https://pypi.python.org/pypi/django-referral

http://paltman.com/2012/08/17/how-to-easily-add-referrals-to-a-website/实现。

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

回答

1

您必须创建一个新的模型,以保持推荐代码。下面给出模型语法。

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) 

上面的叙述线将在创建用户时创建的用户配置文件。

希望为你工作!!!

+0

我正面临一个错误... ** NameError:全局名称'CustomUser'未定义**,现在可能发生它的发生,因为作为回报,您使用CustomUser作为Super.how的参数来解决它? Yogesh – zogo

+0

编辑您现在可以看到的帖子。 –

+0

你的答案运行良好,即推介代码正在生成,但是当我尝试使用默认的userena编辑配置文件选项来编辑用户配置文件时,那么我正面临像这样的错误**'配置文件'对象没有属性'verification_code'**如果你在那里请帮助我。 @Yogesh – zogo