2017-03-11 3 views
0

www.example.com/product_name/product_idというURLを指定して製品の詳細ページを表示しようとしています。しかし、私はこのエラーが発生しています。テンプレートレンダリング中にエラーが発生しました

'product_details'を引数 '(u'lehnga choli'、43)で置き換え、キーワード引数 '{}'が見つかりません。 1つのパターン(複数可)試してみました:[ '(?P [-ZA-Z] *)(?P [0-9] +)//$']

をここに私urls.pyは

url(r'^(?P<product_name>[a-zA-Z]*)/(?P<product_id>[0-9]+)/$', 'designer.views.product_details', name='product_details'), 
です

、ここでは、HTMLテンプレート

{% url 'product_details' designs.name designs.id %} 

の私のURLであり、これは(URLで使用することはできません)名前にスペースがあります私のviews.py

def product_details(request, product_name, product_id): 
    design = Design.objects.get(id=product_id)  

    return render_to_response("designer/product_detail.html", { 
     "design":design,      
     "current": "product_detail", 
    }, context_instance=RequestContext(request)) 
+0

名前にスペースがあります(URLには使用できません)。何をしようとしているかに基づいて、['SlugField'](https: //docs.djangoproject.com/en/1.10/ref/models/fields/#slugfield) –

+1

ありがとうございますが、これに対応する代替ソリューションはありますか?どのように私はテンプレートのタグのスペースを削除することができます –

+0

今すぐ回答を追加;) –

答えて

0

です。私は私のコメントで述べたように、あなたのビューでidDesignを探していることから、あなたは、SlugField

しかしに見たいと思うかもしれません、実際にモデルがナメクジを持っているかどうかは関係ありません。テンプレートタグslugifyを使用すると、URLを通過できるようにすることができます。

{% url 'product_details' designs.name|slugify designs.id %} 

スペースが-に置き換えているので、これは、同様にあなたのURLに小さな微調整を必要としない - と私は一般的に\wを使用しています。

url(r'^(?P<product_name>[\w-]+)/(?P<product_id>[0-9]+)/$', 'designer.views.product_details', name='product_details'), 
+0

うん、うまく動作します..ありがとう –

関連する問題