2017-03-27 22 views
1

I`m Djangoの1.10を使用して、私はこのエラーを取得:NoReverseMatch/Djangoの1.10

の引数を持つ 'views.product_detail' '()' とキーワード引数 '{' のPKのためのリバース /時NoReverseMatch」 :1} 'が見つかりません。 0のパターン(複数可)試してみました:[]

をこれは私のindex.htmlテンプレートです:

{% for pr in product %} 
       <li> 
        {{ pr.pk }} 
        <a href="{% url 'views.product_detail' pk=pr.pk %}"> 
         {{ pr.name }} 
        </a> 
        || {{ pr.description }} || <img src="{{ pr.image.url }}"> 
       </li> 
{% endfor %} 

私のメインプロジェクトurls.pyは次のとおりです。

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', include('products.urls')), 
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) 

私のアプリのurls.pyです:

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    url(r'^$', views.hello_world, name='hello'), 
    url(r'^product/(?P<pk>[0-9]+)/$', views.product_detail,name='product_detail'), 
] 

私のviews.pyは以下のとおりです。

from django.http import HttpResponse, HttpResponseRedirect 
from django.template import loader 
from django.shortcuts import render, get_object_or_404 
from .models import Product 

# Create your views here. 
def hello_world(request): 
    product = Product.objects.order_by('id') 
    template = loader.get_template('index.html') 
    context = { 
     'product': product 
    } 
    return HttpResponse(template.render(context, request)) 

def product_detail(request, pk): 
    product = get_object_or_404(Product, pk=pk) 
    template = loader.get_template('product_detail.html') 
    context = { 
     'product': product 
    } 
    return HttpResponse(template.render(context, request)) 

エラーメッセージは次のとおりです。あなたの助けのための Error message

感謝!

+2

このようなURLタグは使用しないでください。代わりに、パーマリンクデコレータを使用します。 https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#get-absolute-url –

答えて

-1

NoReverseMatchは、Djangoが要求されたURLとあなたのurls.pyにあるURLと一致していないことを意味します。

パターンにはテキストを含める余地がないため、r'^$'は何も見つかりませんでした。プロジェクトのURLにr'^$'r''またはr'^products/'に変更してください。こうすると、あなたのURLは次のようになります:

'/products/product/1/' # For product_detail 
'/products/' # For views.hello_world 
+0

こんにちはKris、私はr '^ $'をr '^/$'に変更しますメッセージは** Page not found(404) リクエスト方法:\t GET リクエストURL:\t http:// localhost:8000/ Shoppy.urlsで定義されたURLconfを使用して、Djangoは次の順序でこれらのURLパターンを試しました: ^管理/ ^/$ [名= 'こんにちは'] 製品/(?P [0-9] +)/ $ [名= 'product_detail'] ^メディア\ /(?P 。*) $ 現在のURLは、これらのいずれとも一致しませんでした**あなたの助けをありがとう –

+0

私は自分の答えを更新しました。 –

0

問題は、製品のURLをどのように含めたかです。あなたは$でパターンを含むそれを終了したので、それ以降は何も一致しません。それを含めるときは、決して$を使用しないでください。

url(r'', include('products.urls')), 
関連する問題