나는 django allauth로 다중 양식 가입을 만들려고합니다. (원래 장고 마법사를 시도했지만, 사용자가 작성한 이전 양식 데이터에 따라 서명이 반드시 선형 경로가 아니므로 선택하지 마십시오). django allauth를 멀티 페이지 가입과 함께 사용하는 가장 좋은 방법은 무엇입니까? 를 사용하는 도면과 함께 종료 후, 로그인 요구 유사한 뷰 시리즈 다음장고 allauth, 복수 양식 가입
@require_http_methods(['GET', 'HEAD', 'POST'])
def profile_view(request, price_id):
form = ProfileForm()
if request.method == 'POST':
form = ProfileForm(request.POST)
if form.is_valid():
form.save()
user = authenticate(request, username=form.cleaned_data['email'],
password=form.cleaned_data['password1'])
login(request, user)
return redirect('users:supply_address')
return render(request, 'pages/signup.html', {'form': form})
:
는 I는 사용자를 생성 제와 형태 뷰 시리즈를 사용하여 그들을 로그인 생각 complete_signup
django-allauth의 방법.
@login_required
@require_http_methods(['GET', 'HEAD', 'POST'])
def direct_debit_view(request):
form = DirectDebitForm()
if request.method == 'POST':
form = DirectDebitForm(data=request.POST)
if form.is_valid():
request.session.update(form.cleaned_data)
complete_signup(request, user, settings.ACCOUNT_EMAIL_VERIFICATION,settings.LOGIN_REDIRECT_URL)
return redirect(settings.LOGIN_REDIRECT_URL)
return render(request, 'pages/signup_postcode.html', {'form': form})
그리고 첫 번째 가입보기를 가리 키도록 django-allauth의 로그인에 사용 된 url을 무시합니다. 그러나 이것이 최선의 접근 방법인지 확실하지 않습니다.
url(r'^account/signup/$', views.profile_view, name='profile'),
다른 접근 방법이 필요합니다. 첫 번째 양식은 이미 로그인 할 수있는 유효한 사용자를 생성합니다. 따라서 가입은 모든 의도와 목적을 위해 수행됩니다. 나머지는 프로필을 완료하고 있습니다. 이것은 정상이며 대부분의 가입이 작동하는 방법이지만, 모든 것이 완료되기 전에 사용자 계정을 만들지 않으려면 세션을 사용해야합니다. 최종 형식은 필드의 통합이 필요하며 세션의 내용으로 부분적으로 채워 져야합니다. – Melvyn
세션 경로를 시작했지만 json 인코딩에서 지원되지 않는 유형의 경우 더 어려워졌습니다. 나는 먼저 사용자 계정을 생성하고 나서 나중에 더 많은 데이터를 추가하는 것이 좋습니다 (완벽한 상황은 아니지만). 가입 프로세스가 모두 끝나기 전에 이메일을 보내지 않으려합니다. 끝마친.사용자가 가입을 완료하지 않고 데이터를 완료하지 않으면 불완전한 세부 정보가있는 사용자 계정을 볼 수 있습니다. – Yunti
나는 완전히 다른 프로필 모델을 가진 두 가지 사용자 유형이 있다는 것을 제외하고는 거의 같은 보트에 있습니다. 나는 "다음"을 사용하여 길을 본다. request.POST 또는 request.GET에서 다음에 제공하면 리디렉션 URL을 무시할 수 있습니다. 양식 필드로 전달하는 것은 내가 지금하고있는 길입니다. 아무도 들어 오지 않으면 모든 코드가 작동 할 때 코드를 게시 할 것입니다. – Melvyn