如何区分django中第一次注册和常规登录用户

时间:2013-11-21 16:28:21

标签: django login django-allauth

我正在使用django allauth获取所有signin, signup and logout功能并且工作正常。

现在我有一个功能,

1.当用户首次注册并登录时,我需要将其重定向到成功页面/验证页面(/success/

2.当已经注册的用户登录时,他应该被重定向到/dashboard/

截至目前,我通过/dashboard/

中名为LOGIN_REDIRECT_URL的设置将用户(首次注册并已注册)重定向至settings.py
LOGIN_REDIRECT_URL = /dashboard/

此外,我观察到有一个名为last_login的字段/属性用于客户对象,我们可以使用它来查找用户的上次登录,是否有用?

model.py

from django.contrib.auth.models import User

class Profile(models.Model):
    business_name = models.CharField(max_length = 45, null = False, blank = False)
    user = models.ForeignKey(User, unique = True)
    work_field = models.CharField(max_length = 45, null = False, blank = False)
    image = models.ImageField(upload_to = '/images/', null = True, blank = True, max_length = 250)
    image.allow_tags = True
    url = models.URLField(max_length = 255, null = True, blank = True)

2 个答案:

答案 0 :(得分:5)

我认为您可以查看 last_login 字段(如果您确定存在用户)。

尝试下一个:

profile.user.last_login == profile.user.date_joined: # this may be True if a user logins for a first time

OR

profile.user.last_login == None:

我不知道该字段的确切价值,但您可以尝试并找到首次注册用户的规则。

答案 1 :(得分:0)

使用authenticate()创建自定义视图,而不是当您获取用户对象时使用实例方法.last_login并且它将返回null或true,因此如果它反向,请使用字符串创建一个变量或者等。使用login()登录用户并返回由用户对象方法last_login决定的变量。您还必须找到一个模板并在yp ur urlconf上定义一个url。您可以找到许多模板,为您的视图创建自定义表单