相关疑难解决方法(0)

使用django-allauth登录信号将用户重定向到另一个URL

我使用Django-allauth作为我的登录/注册相关的东西,所以当用户注册(第一次)进入我的网站时,我/thanks/通过在settings.py文件中定义下面的设置将他重定向到页面

LOGIN_REDIRECT_URL ='/ thanks /'

但是当用户下次尝试登录时(如果已经注册),我应该将他重定向到'/dashboard/'URL

所以试着改变它,Django-allauth signals如下所示,根本不起作用

@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'))
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以让我知道如何重定向用户/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/'
Run Code Online (Sandbox Code Playgroud)

但是,它仍在重定向用户/dashboard/,我的逻辑在确定用户第一次出错时?

django django-signals django-allauth

23
推荐指数
2
解决办法
1万
查看次数

django LOGIN_REDIRECT_URL具有动态值

我正在尝试将用户重定向到包含其用户名的网址(例如http:// domain/username /),并试图弄清楚如何执行此操作.我正在使用django.contrib.auth进行用户管理,所以我尝试在设置中使用LOGIN_REDIRECT_URL:

LOGIN_REDIRECT_URL = '/%s/' % request.user.username # <--- fail..
Run Code Online (Sandbox Code Playgroud)

但它似乎只接受固定的字符串,而不是在用户登录后确定的东西.我怎么能完成这个?

django login url-routing

7
推荐指数
2
解决办法
8911
查看次数