我为我的登录/注册相关内容使用Django-allauth,所以当用户注册(第一次)到我的网站时,我将他重定向到/thanks/
页面在settings.py
文件中定义如下设置用django-allauth登录信号将用户重定向到另一个网址
LOGIN_REDIRECT_URL =“/谢谢/”
但是,当用户试图登录,在未来的时间(如果已经注册),我要他重定向到'/dashboard/'
URL
所以试图改变Django-allauth signals
像下面这是不workin处的G所有
@receiver(allauth.account.signals.user_logged_in)
def registered_user_login(sender, **kwargs):
instance = User.objects.get_by_natural_key(kwargs['user'])
print instance.last_login==instance.date_joined,"??????????????????????????????"
if not instance.last_login==instance.date_joined:
return HttpResponseRedirect(reverse('dashboard'))
因此,谁能请让我知道如何将用户重定向到/dashboard/
为正常登录,我在做什么错在上面的信号代码?
编辑
后按照下面的答案被pennersr
一些修改,我AccountAdapter
类看起来像下面
from allauth.account.adapter import DefaultAccountAdapter
# from django.contrib.auth.models import User
class AccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
if request.user.last_login == request.user.date_joined:
return '/registration/success/'
else:
return '/dashboard/'
但尽管如此,它是将用户重定向到/dashboard/
,我的逻辑在确定第一次用户错了?
谢谢pennersr,我上面编辑过我的anser,你能帮我解决吗? –
我们也可以为用户提供重新发送确认电子邮件的选项吗?如果他没有确认登记? –
您是否尝试过检查last_login/date_joined的值?只要用户尝试使用未经验证的电子邮件登录,就会自动重新发送确认电子邮件。请注意,为了防止邮件轰炸,只有当登录尝试间隔3分钟左右时才会进行。 – pennersr