【问题标题】:Django differentiate between the first time user and returning userDjango区分第一次用户和返回用户
【发布时间】:2017-06-29 16:31:29
【问题描述】:

我正在使用 django 注册 redux 进行登录和身份验证。我想做以下事情。

  1. 如果用户第一次登录我想重定向到 URL-"profile/create"
  2. 如果用户是回访用户,我不希望用户访问 URL-“profile/create”,我希望将用户重定向到另一个 URL。

【问题讨论】:

  • 返回用户是什么意思
  • 用户第二次登录应用。
  • 登录后,您可以检查是否创建了个人资料,然后返回另一个网址,否则返回个人资料网址

标签: python django django-models


【解决方案1】:

django-registration-redux 似乎默认使用 Django 的 login-view 来登录用户。

因此,我将提供一个自定义登录视图,而不是另外检查尝试登录的用户并检查 last_login 是否已填写。

根据结果,一旦身份验证成功,用户就可以被重定向到所需的页面。

【讨论】:

    【解决方案2】:

    在用户第一次登录时必须注册的最基本形式。 不要在登录时使用这种功能 在注册功能时使用它(查看)

    这是一个旧的代码草案,给你的想法

    def ragister(request):
        if request.user.is_authenticated:
            return HttpResponseRedirect('/profile-settings/')
    
        if request.method == 'POST':
            fname = request.POST['fname']
            lname = request.POST['lname']
            username = request.POST['username']
            password = request.POST['password']
            users = User()
            users.password = password
            users.username = username
            users.first_name = fname
            users.last_name = lname
    
            try:
                users.set_password(password)
                users.save()
                users = authenticate(username=username, password=password)
                if users is not None:
                    login(request,users)
                    return HttpResponseRedirect('/profile-settings/')
                messages.success(request, "This number is registered please try other number or reset your password")
                return HttpResponseRedirect('/register/')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 2017-08-30
      • 2015-12-01
      • 1970-01-01
      • 2021-12-20
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多