Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 Forms_Django Allauth - Fatal编程技术网

Python 如果用户已注册,则从邀请中删除电子邮件地址

Python 如果用户已注册,则从邀请中删除电子邮件地址,python,django,django-forms,django-allauth,Python,Django,Django Forms,Django Allauth,有一种情况是,当用户请求邀请时,他/她将注册该帐户。当请求被管理员接受,然后他们可以注册,我已经做了。但我不知道一旦用户成功注册,如何从邀请表中删除电子邮件地址。我正在使用django allauth软件包 class CustomSignupForm(forms.Form): def __init__(self, *args, **kwargs): super(CustomSignupForm, self).__init__(*args, **kwargs)

有一种情况是,当用户请求邀请时,他/她将注册该帐户。当请求被管理员接受,然后他们可以注册,我已经做了。但我不知道一旦用户成功注册,如何从邀请表中删除电子邮件地址。我正在使用django allauth软件包

class CustomSignupForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(CustomSignupForm, self).__init__(*args, **kwargs)

    def clean(self):
        email = self.cleaned_data.get('email')
        if email and settings.INVITE_MODE:
            try:
                obj = Invitation.objects.get(email=email)
                if not obj.request_approved:
                    self.add_error('email', 'Sorry your invitation is still in pending')
            except Invitation.DoesNotExist:
                invitation = Invitation.objects.create(email=email)
                self.add_error('email', 'Sorry at this time you are not invited. But we have added you to our invite list')
        elif email is None:
            raise forms.ValidationError('Email field should not be empty')
        else:
            return email

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=False, verbose_name=_('request accepted'))
    status = models.BooleanField(default=False)

@receiver(post_save, sender=Invitation)
def send_email_when_invite_is_accepted_by_admin(sender, instance, *args, **kwargs):
    request_approved = instance.request_approved
    if request_approved:
        subject = "Request Approved"
        message = "Hello {0}! Your request has been approved. You can now signup".format(instance.email)
        from_email = None
        to_email = [instance.email]
        send_mail(subject, message, from_email, to_email, fail_silently=True)

首先使用e=invitation.objects.get(email=)选择行,锁定特定行,然后使用e.delete()删除条目。我应该在哪里看到它?邀请表,不是吗?是的,但仅当用户在接受注册时没有注册,因为他/她可能会在一段时间后注册。如果是,完成注册后,删除邀请中的条目。您需要了解他们何时完成注册,并且作为一种级联效应,删除邀请表中的条目。