如何成功将变量传递给我的python social auth管道?

时间:2014-11-21 18:43:58

标签: django python-social-auth

我正在尝试使用Python Social Auth进行非常标准的Django注册过程。就我而言,用户:

  1. 选择他们的计划
  2. 选择他们的位置
  3. 创建帐户
  4. 我想通过Python Social Auth流程传递计划和位置。

    我试过了两个:

    SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ['plan', 'location']
    FIELDS_STORED_IN_SESSION = ['plan', 'location']
    

    我试过了两个:

    <form action="{% url "social:complete" "email" %}?plan={{ plan }}&location={{ location }}" method="post" role="form">
    

    <form action="{% url "social:complete" "email" %}" method="post" role="form">
      <input type="hidden" name="plan" value="{{ plan }}" />
      <input type="hidden" name="location" value="{{ location }}" />
    

    在我的注册用户管道中,我试过了两个:

    plan = strategy.session_get('plan', "trial")
    

    plan = request.session['plan']
    

    在任何情况下都不会传递变量。计划和位置始终没有。我的注册用户在这里:

    SOCIAL_AUTH_PIPELINE = ( 
        #'social.pipeline.debug.debug',
        'social.pipeline.social_auth.social_details',
        'social.pipeline.social_auth.social_uid',
        'social.pipeline.social_auth.auth_allowed',
        'social.pipeline.social_auth.social_user',
        'social.pipeline.user.get_username',
        'social.pipeline.mail.mail_validation',
        'social.pipeline.user.create_user',
        'myproject.pipelines.register_user',
        'social.pipeline.social_auth.associate_by_email', 
        'social.pipeline.social_auth.associate_user',
        'social.pipeline.social_auth.load_extra_data',
        'social.pipeline.user.user_details',
    )
    

    这似乎是一个非常常见的用例。

0 个答案:

没有答案