2017-02-27 9 views
1

カートのAppはジャンゴを使用して、カートをしようが、私は直接ホームページ

views.py

from django.shortcuts import render, HttpResponseRedirect 
from django.core.urlresolvers import reverse 
# Create your views here. 

from products.models import Product 
from .models import Cart 

def view(request): 
    cart = Cart.objects.all()[0] 
    context = {"cart": cart} 
    template = "cart/view.html" 
    return render(request, template, context) 

def update_cart(request, id): 
    cart = Cart.objects.all()[0] 
    try: 
     product = Product.objects.get(id=id) 
    except Product.DoesNotExist: 
     pass 
    except: 
     pass 
    if not product in cart.products.all(): 
     cart.products.add(product) 
    else: 
     cart.products.remove(product) 

    return HttpResponseRedirect(reverse("cart")) 

からカートに製品を追加していので、ビューには、私はむしろスラグよりも、製品IDを渡していますurls.py

from django.conf import settings 
from django.conf.urls import patterns, include, url 
from django.conf.urls.static import static 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    # Examples: 
    url(r'^$', 'products.views.home', name='home'), 
    url(r'^products/$', 'products.views.home', name='products'), 
    url(r'^cart/products/$', 'carts.views.update_cart', name='update_cart'), 
    url(r'^cart/$', 'carts.views.view', name='cart'), 
    url(r'^admin/', include(admin.site.urls)), 
) 

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

base.html

<p><a href='{% url "update_cart" product.id %}' class="btn btn-primary" role="button">Add to cart</a> </p> 

私による製品/引数を指定して 'update_cart' のリバース/時urls.py

エラー

NoReverseMatchで何らかの障害がある 「(1、 ) 'とキーワード引数' {} 'は見つかりませんでした。 1パターンが試されました: リクエスト方法:GETリクエスト URL:http://127.0.0.1:8000/products/ Djangoバージョン:1.6.5例外 タイプ:NoReverseMatch例外値: 'update_cart'の戻り値は 引数 ' 1 ')'とキーワード引数 '{}'が見つかりません。 1パターン 試みました:['$ carts/products/$']例外 場所:/Users/apulgupta/Desktop/table1.2/lib/python2.7/site-packages/django/core/urlresolvers.py _reverse_with_prefixで 、ライン452のPython 実行可能ファイル:/Users/apulgupta/Desktop/table1.2/bin/python Pythonの バージョン:2.7.10 Pythonのパス: [ '/Users/apulgupta/Desktop/table1.2/table1_2' 、 '/Users/apulgupta/Desktop/table1.2/lib/python27.zip'、 '/Users/apulgupta/Desktop/table1.2/lib/python2.7'、 '/ Users/apulgupta/Desktop/'/Users/apulgupta/Desktop/table1.2/lib/python2.7/plat-mac'、 '/ Users/apulgupta/Desktop/table1にあります。 2/lib/python2.7/plat-mac/lib-scriptpackages '、 '/Users/apulgupta/Desktop/table1.2/lib/python2.7/lib-tk'、 '/Users/apulgupta/Desktop/table1.2/lib/python2.7/lib-old'、 ' /Users/apulgupta/Desktop/table1.2/lib/python2.7/lib-dynload '、 ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 '、 ' /システム/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin '、 ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk '、 ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac '、 ' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2 .7/plat-mac/lib-scriptpackages '、 ' /Users/apulgupta/Desktop/table1.2/lib/python2.7/site-packages '] サーバー時刻:Tue、 update_cart」の行83リバースのテンプレート /Users/apulgupta/Desktop/table1.2/table1_2/templates/base.html、エラー で

を演出テンプレート 中の2017年2月28日夜12時23分35秒0530のエラー'と引数'(1) 'とキーワード の引数' {} 'が見つかりません。 1パターンを試しました:['$ carts/products/$']

答えて

0

IDをキャッチするにはregexを追加する必要があります。

ので、URLは

+0

を投げているようです。その解決策は私のために働いた。 –

+0

この解決策または上記の解決策?あなたのために働いた答えが正しいかどうかを確認してください:-) – Bijoy

2

問題のURLパターンのトレースバック:'^$carts/products/$'。最初に迷惑な$記号があります。これは残りのパターンが一致しないことを意味します。

+0

はそれをしたが、誤差の変化のあまりないviews.pyに

url(r'^cart/products/(?P<product_id>\d+)$', 'carts.views.update_cart', name='update_cart'), 
urls.pyで

と利用IDをする必要があります。ビューの逆はエラー –

関連する問題