我有一个部分功能管道,等待表单点击提交按钮。 单击按钮时,管道应继续运行。 我正在考虑这种方法,但是如何在管道中获取请求对象?
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit", name="SumbitSocialData">
@partial
def partial_pipeline(backend, user, response, is_new=None, *args, **kwargs):
...
request = ?
if 'SumbitSocialData' in request.POST:
# move on
如何在管道中访问请求对象?
有人对如何实现这个有更好的想法吗?
答案 0 :(得分:0)
我通过在视图代码中添加submit_social_data
会话来解决它:
def form_valid(self, form):
...
self.request.session['submit_social_data'] = True
return redirect(self.get_success_url())
然后,在管道中,我检查是否是一个新的社交帐户,如果它点击了按钮:
@partial
def twitter_email(backend, user, response, is_new=None, *args, **kwargs):
...
submit_social_data = backend.strategy.session.get('submit_social_data', None)
if is_new and not submit_social_data:
return redirect('redirect_url')