Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在邀请人介绍其他人后,增加邀请人的分数_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 在邀请人介绍其他人后,增加邀请人的分数

Python 在邀请人介绍其他人后,增加邀请人的分数,python,django,django-models,django-views,Python,Django,Django Models,Django Views,当邀请人推荐其他人加入时,我如何增加邀请人的积分。接受参考后,分数将增加。我可以做推荐,但不能增加由邀请者发送推荐的用户接受推荐时的点数 这是我的密码 class Invitation(models.Model): email = models.EmailField(unique=True, verbose_name=_("e-mail Address")) invite_code = models.UUIDField(default=uuid.uuid4, unique=Tru

当邀请人推荐其他人加入时,我如何增加邀请人的积分。接受参考后,分数将增加。我可以做推荐,但不能增加由邀请者发送推荐的用户接受推荐时的点数

这是我的密码

class Invitation(models.Model):
    email = models.EmailField(unique=True, verbose_name=_("e-mail Address"))
    invite_code = models.UUIDField(default=uuid.uuid4, unique=True)
    points = models.PositiveIntegerField(default=5)
    request_approved = models.BooleanField(default=True, verbose_name=_('request accepted'))

    def __str__(self):
        return "Invite: {0}".format(self.email)

class Referral(models.Model):
    referred_by = models.ForeignKey(Invitation, related_name="sharer", null=False, blank=False)
    referred_to = models.EmailField(unique=True, null=False, blank=False)
    refer_code = models.UUIDField(default=uuid.uuid4, unique=True)
    refer_accepted = models.BooleanField(default=False)


def referInvitation(request, invite_code):
    try:
        # invite_id = request.session['invite_id']
        obj = Invitation.objects.get(invite_code=invite_code)
    except:
        obj = None
    form = ReferForm(request.POST or None)
    if form.is_valid():
        referred_to = form.cleaned_data.get('referred_to')
        print ('referred_to', referred_to)
        if not obj == None:
            new_refer = Referral(referred_by=obj, referred_to=referred_to)
            new_refer.save()
            subject = "Request to Join Connyct"
            from_email=None
            message = "You have been invited by {0}".format(obj.email)
            to_email=[referred_to]
            send_mail(subject, message, from_email, to_email, fail_silently=True)
    context = {"form": form}
    return render(request, 'refer/refer.html', context)

与电子邮件一起发送接受/注册链接。用户注册/接受完成后,通过执行以下操作,仅增加已转介的人数:


obj.points+=1

仅供参考,而不是
if not obj==None:
do
如果obj不是None:
在被邀请人接受转介后,只有计数应该增加,对吗?是的,只有在接受邀请请求后,计数应该增加。感谢@nik\m分享有价值的信息。我能知道使用is not over not obj==的好处吗?仅供参考,这只是python(不是Django特有的)。我是否必须像你在Middleware中所说的那样提高积分?因为在我的情况下,当我推荐你加入时,你会收到一封电子邮件。当您单击该链接时,必须增加计数。请设计一个链接/url,使其能够传递用户对象。比如www.sample.com/register/。此链接最终应显示一个表单,以获取新用户的详细信息,并同时增加计数。