私は、ユーザーの登録後に、リンクをクリックして別の注文の詳細を入力できるページを参照するアプリを作成しています。そのリンクをクリックすると、次のビューがアクティブになります
def Checkout_Attributes(request):
check_form = Check_Attribute_Form()
context={'check_form':check_form}
return render_to_response('checkout.html',context,context_instance=RequestContext(request))
フォームを送信すると、次のビューがアクティブになります
def Set_Checkout_Attributes(request):
#if request.user.is_authenticated():
#return HttpResponseRedirect('/checkout/')
if request.method == 'POST':
check_form = Check_Attribute_Form(request.POST)
if check_form.is_valid():
customer_check=Customer_check_attributes(billing_add=check_form.cleaned_data['billing_add'],shipping_add=check_form['shipping_add'],payment_method=check_form['payment_method'],shipping_method=check_form['shipping_method'],reward_points=check_form['reward_points'])
customer_check.save()
return render_to_response('sucess.html')
else:
check_form=Check_Attribute_Form()
return render_to_response('a.html',{'check_form':check_form} , context_instance=RequestContext(request))
このビューでは、Set_Checkout_AttributesがHttpResponseオブジェクトを返さなかったというエラーが発生します。
また、空白のフォームを送信すると、検証エラーが表示されないことがもう1つあります。
テンプレートは次のとおりです
<form action="/checkout1/" method="post">
{% csrf_token %}
{% if check_form.errors %}<h2>Please correct the following fields:</h2>{% endif %}
<div class="register_div">
{% if check_form.billing_add.errors %}<p class="error">{{ check_form.billing_add.errors }}</p>{% endif %}
<p><label for="billing_add" {% if check_form.billing_add.errors %} class="error"{% endif %}>Billing Address:</label></p>
<p>{{ check_form.billing_add }}</p>
</div>
.
.
.
.
.
<p><input type="submit" value="submit" aly="register"/></p>
</form>