def create_password(request, token):
if request.user.is_authenticated:
return redirect('order:details', token=token)
order = get_object_or_404(Order, token=token)
email = order.user_email
form_data = request.POST.copy()
if form_data:
form_data.update({'email': email})
register_form = PasswordForm(form_data or None)
if User.objects.filter(email=email).exists():
login_form = LoginForm(initial={'login': email})
else:
login_form = None
if register_form.is_valid():
register_form.save()
password = register_form.cleaned_data.get('password')
user = auth.authenticate(request=request, email=email,
password=password)
auth.login(request, user)
attach_order_to_user(order, user)
return redirect('order:details', token=token)
ctx = {'form': register_form, 'email': email, 'order': order,
'login_form': login_form}
return TemplateResponse(request, 'order/create_password.html', ctx)
评论列表
文章目录