模板渲染时出错

Error during template rendering

我正在尝试通过提供 url www.example.com/product_name/product_id 来呈现产品的详细信息页面。但是我收到了这个错误。

'product_details' 的反向操作,参数“(u'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 模板中的 urls

{% 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))

名称中有一个space(不能在URL中使用)。正如我在评论中提到的,您可能想查看 SlugField

但是,因为您在视图中查找 idDesign,模型是否具有鼻涕虫。您可以使用模板标签 slugify 使其可以通过 URL。

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

这也需要对您的 URL 进行小的调整,因为 space 被替换为 - - 我通常只使用 \w

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