Python 如果用户已注册,则从邀请中删除电子邮件地址
有一种情况是,当用户请求邀请时,他/她将注册该帐户。当请求被管理员接受,然后他们可以注册,我已经做了。但我不知道一旦用户成功注册,如何从邀请表中删除电子邮件地址。我正在使用django allauth软件包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)
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()删除条目。我应该在哪里看到它?邀请表,不是吗?是的,但仅当用户在接受注册时没有注册,因为他/她可能会在一段时间后注册。如果是,完成注册后,删除邀请中的条目。您需要了解他们何时完成注册,并且作为一种级联效应,删除邀请表中的条目。