Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def update(self, instance, validated_data):
- email_updated=False
- email = self.validated_data["email"]
- print(instance.email) #abc@email.com
- if email!=instance.email:
- if User.objects.filter(email=email).exists():
- raise serializers.ValidationError("email is not available")
- else:
- email_updated=True
- instance.__dict__.update(**validated_data)
- instance.save() # instance is saved.
- print(instance.email) #xyz@email.com
- if email_updated:
- task_send_activation_mail.delay(instance.id)#this one here
- print(instance.email) #xyz@email.com
- return instance
- from `celery` import shared_task
- @shared_task
- def send_activation_mail(user_id):
- from project.models import User
- user = User.objects.get(pk=user_id)
- subject = 'Activate Your '+DOMAIN_SHORT_NAME+' Account'
- message = get_template('registration/account_activation_email.html').render({
- 'domain_url': DOMAIN_URL,
- 'domain': DOMAIN,
- 'domain_short_name': DOMAIN_SHORT_NAME,
- 'domain_full_name': DOMAIN_FULL_NAME,
- 'domain_email': DOMAIN_EMAIL,
- 'domain_support_email': DOMAIN_SUPPORT_EMAIL,
- 'domain_support_url': DOMAIN_SUPPORT_URL,
- 'mobile_support': MOBILE_SUPPORT,
- 'user': user,
- 'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode(),
- 'token': account_activation_token.make_token(user),
- })
- user.email_user(subject, DOMAIN_FULL_NAME +' ', html_message=message)
- return user.email #"abc@email.com" is printed as celery output.
Add Comment
Please, Sign In to add comment