0
У меня есть три формы на одной странице с Django. Если я отправляю регистрационную форму или форму оплаты, моя страница всегда отправляет форму для входа. У меня есть одна модельная форма и две стандартные формы в form.py Где моя ошибка?Три формы на одной странице с Django
if request.method == 'POST':
login_form = LoginForm(data=request.POST)
register_form = RegisterForm(data=request.POST)
pay_form = CardForm(data=request.POST)
if login_form.is_valid():
username = request.POST['username']
password = request.POST['password']
user=authenticate(username=username,password=password)
if user:
if user.is_active:
login(request,user)
return HttpResponseRedirect('/')
else:
return HttpResponse("Your account is disabled")
else:
return HttpResponse("Yanlış Kullanici adi ya da şifre")
else:
return HttpResponse("Login Form is not valid")
if register_form.is_valid():
register_form.save()
else:
return HttpResponse("Register Form is not valid")
if pay_form.is_valid():
holder_name = request.POST['holder_name']
card_number = request.POST['card_number']
exp_year = request.POST['exp_year']
exp_month = request.POST['exp_month']
cvv = request.POST['cvv']
satinAl(request,event_id,card_number,holder_name,exp_month,exp_year,cvv)
else:
return HttpResponse("Pay Form is not valid")
else:
login_form = LoginForm()
pay_form=CardForm()
register_form = RegisterForm()
return render_to_response('index.html', locals(),context_instance=RequestContext(request))
Когда POST получен, 'login_form.is_valid' метод сначала вызывается, и он проверяется, который вернет false, если он не заполнен. Остальная часть логики не имеет шансов быть оцененной. См. Этот ответ для подсказок, чтобы решить вашу проблему: http://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django – mrkre