2015-07-10 1 views
0

У меня есть частичный конвейер func, который ждет форму, чтобы нажать кнопку отправить кнопку. Когда кнопка нажата, трубопровод должен двигаться дальше. Я думал об этом подходе, но как я могу получить объект запроса в конвейере?Python social 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

Смежные вопросы