我正在尝试通过提供网址www.example.com/product_name/product_id来呈现产品的详细信息页面。但是我收到了这个错误。
反转' product_details'有争议的'(你' lehnga choli',43)'和关键字参数' {}'未找到。尝试了1种模式:['(?P [a-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 %}
这是我的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 :(得分:0)
名称中有一个空格(不能在网址中使用)。正如我在评论中提到的,您可能希望查看SlugField
然而,因为您在视图中按Design
查找id
,因此模型是否有一个slug并不重要。您可以使用模板标记slugify
使其可以通过URL传递。
{% url 'product_details' designs.name|slugify designs.id %}
这确实需要对您的网址进行小幅调整,因为空格已替换为-
- 我通常只使用\w
。
url(r'^(?P<product_name>[\w-]+)/(?P<product_id>[0-9]+)/$', 'designer.views.product_details', name='product_details'),