2015-07-10 25 views
0

我有一個部分func管道,等待窗體點擊提交按鈕。 點擊按鈕後,管道應繼續運行。 我正在考慮這種方法,但我怎樣才能得到管道中的請求對象?Python社交auth部分管道恢復後表單提交按鈕

<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

我解決了這個問題,通過在會議上添加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') 
+0

嘿,我陷入了完全相同的情況。你能否詳細說明你的解決方案? – Maxsteel

+0

嗨,我在form_valid中添加了一個新行,並更正了我的答案,submit_social_data = ..。 我在會話中設置了submit_social_data標誌爲True,如果表單已經過驗證,那麼比我在管道中重新獲取它的時間要長。如果按鈕被點擊並且表單被驗證,管道將繼續前進,因爲該標誌被設置爲True。 – sergiuz