URLconfで奇妙なエラーが発生します。
次の設定があります。
# root conf
urlpatterns = patterns('',
# ...
url(r'^cart/', include('bbhq.cart.urls')),
# ...
)
# bbhq.cart.urls
urlpatterns = patterns('',
# ...
url(r'^add_to_cart$', add_to_cart, name='add-to-cart-page'),
# ...
)
逆関数を使用するフォームがあります(正常に)
<form method="post" action="{% url add-to-cart-page %}">
ただし、フォームを送信すると404ページが見つかりません。
ここで何が起こっているのか理解できません。逆関数はどのように機能しますが、実際のURLに404を与えますか?
関連性があるかどうかはわかりませんが、404のデバッグ情報には、これらの状況でよく見られるように、検索された正規表現のリストが表示されません。これが私が得るすべてです-
Page not found (404)
Request Method: POST
Request URL: http://192.168.1.98:8000/cart/add_to_cart
私のビューコードは-
def add_to_cart(request):
if request.method == 'POST':
if 'cart' in request.session:
cart = request.session['cart']
else:
cart = Cart()
if 'item_id' not in request.POST:
raise Http404
else:
try:
item = StockItem.objects.get(pk=int(request.POST['item_id']))
except:
raise Http404
cart_add(cart, item)
request.session.modified = True
if request.is_ajax():
return render_to_response('cart/cart_summary.html',
{'cart_count': cart_items(cart),
'cart_total': cart_total(cart)},
context_instance=RequestContext(request))
else:
return HttpResponseRedirect(reverse('cart-page'))
else:
raise PermissionDenied
URLにスラッシュを追加しようとしましたが、まったく同じエラーが発生します-
url(r'^add_to_cart/$', add_to_cart, name='add-to-cart-page'),