ビューorders.views.order_createはHttpResponseオブジェクトを返しませんでした。代わりにNoneを返しました。ビューorders.views.order_createはHttpResponseオブジェクトを返しませんでした。代わりにNoneを返しました
私はすべてを試しても、このエラーが発生します。問題はURLにあると思いますが、わかりません。 注文チェックアウトのためのviews.pyです。 チェックアウトをクリックするとエラーが表示されます。他のすべてが機能しており、チェックアウトだけがエラーを出しています。
from django.shortcuts import render
from django.template import loader
from .models import OrderItem
from .forms import OrderCreateForm
from cart.cart import Cart
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
OrderItem.objects.create(order=order,product=item['product'],price=item['price'],quantity=item['quantity'])
cart.clear()
return render(request, 'orders/created.html', {'order': order})
else:
form = OrderCreateForm()
return render(request, 'orders/create.html', {'cart': cart, 'form':form})
基地urls.py
from django.conf.urls import url, include
from . import views
urlpatterns = [
url(r'^cart/', include('cart.urls', namespace='cart')),
url(r'^orders/', include('orders.urls', namespace='orders')),
url(r'^$', views.index, name='index'),
url(r'^(?P<product_id>[0-9a-f-]+)/$', views.detail, name="detail"),
]
注文アプリurls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^create/$', views.order_create, name='order_create'),
]
ローカルホスト内のURLは127.0.0.1:8000/orders/create であるべきであり、 create.htmlとcreated.htmlは、marketフォルダのtemplatesフォルダにあります。私がバグを修正するのを助けるために必要ならば、私は親切に他の情報を提供します。
これは、else文で正しく実行されるはずなので、解決策を教えてもらえますか? –
現在の字下げでは、elseはフォームが有効でない場合です。メソッドが 'POST'でないときではありません。すべての状況で応答を返す必要があります。 –
ああ、本当にインデントされました。私はそれが正しいと思っていますが、とにかく感謝します。 –