【问题标题】:Partial Pipeline to ask user's phone number部分管道询问用户的电话号码
【发布时间】:2015-07-31 12:21:32
【问题描述】:

我正在创建一个部分管道以在注册时获取用户的电话号码并跳过后续登录的步骤。我的部分管道如下所示:

@partial
def other_info(strategy, details, user=None, is_new=False, *args, **kwargs):
    if is_new or not details.get('email'):
        request = kwargs['request']
        return redirect('require_phone')
    else:
        return

page-welcome.html 上有一个表格。对应的视图如下所示:

def require_phone(request):
    if request.method == 'POST':
        phone = request.POST.get('phone',None)
        user = User.objects.get(username = request.user.username)
        if phone is not None:
            up = UserProfile.objects.get_or_create(user=request.user,   
                                                   phone = phone)
            up.save()
        backend = request.session['partial_pipeline']['backend']
        return redirect('social:complete', backend=backend)
    else:
        return render(request,'app/page-welcome.html')

问题是,请求对象未正确传递给视图,因此用户显示为匿名。我无法访问用户对象,因此无法保存电话号码。

【问题讨论】:

    标签: python django facebook django-socialauth python-social-auth


    【解决方案1】:

    你也许可以让用户使用

    user = User.objects.get(id=request.session['partial_pipeline']['kwargs']['user'])
    

    然后更新此对象,而不是尝试从 request 获取它(在管道期间将不起作用)。

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 2014-03-30
      相关资源
      最近更新 更多