django中生成的唯一引用代码 [英] Unique referral code generate in django

查看:40
本文介绍了django中生成的唯一引用代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am new in django and i want to generate a unique referral code for each user with the signup.This referral code will be emailed to the user.I am using userena and I have no idea how do this with userena. These are some links about the issue,but not so clear how to implement with userena

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

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

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

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

.So if anyone have clear thoughts about the issue,then please share with me. Cheers

推荐答案

您必须为保全推荐代码创建一个新模型.下面给出了模型语法.

You have to created a new model for hold referral code. below are given model syntax.

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)

在您的模型的最后几行中添加这些行.

add These lines in your last lines 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)

上述提及行将在创建用户时创建您的用户个人资料.

Above mention line will create your user profile at the time of creating user.

希望这项工作能为您服务!

Hope this work for you!!!

这篇关于django中生成的唯一引用代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆