To implement this workflow, I customized registration backend(registration.backends.default.DefaultBackend). Specifically, I have override the 'post_activation_redirect' method to redirect the user to his profile update page. Where he enters his name and password and submits data.
from registration.backends.default import DefaultBackend
class CustomBackend(DefaultBackend):
def post_activation_redirect(self, request, user):
"""
Return the name of the URL to redirect to after successful
account activation.
"""
return ('update_user_profile', (user, ), {})
However, the problem is that when user clicks on activation link his email is validated and activation_key expires. Now if user does not fill his profile information at that point in time, the activation link would no longer redirect him to profile update page because the activation key has expired.
Please advise how to solve this problem.