我正在尝试使用Python Social Auth进行非常标准的Django注册过程。就我而言,用户:
我想通过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',
)
这似乎是一个非常常见的用例。