因此,我正在为朋友创建一个小型电子商务网站,但无法确定网址为什么不能自行解决。
为了简单起见,我在制作网站时使用名为"编号1和#34;的产品。它有一个"数字1和#34;在产品页面上点击产品会将用户带到" / shop / number-1"
我的网址模式是:
url(r'^<slug:url>', views.item, name='products')
视图:
def item(request, url=""):
products = product.objects.get(url=url)
return render(request, 'shop\product.html', {'products', products})
据我所知,这应该呈现我的product.html模板,但它会返回404,我不知道为什么?
如果它有帮助我有其他视图,例如在相同视图中设置的产品类型并且它们工作正常,因此我可以告诉它slug:url未在views.item中使用,或者视图没有正确获取上下文。
对于这个项目,我也在django 1.11.7上。
答案 0 :(得分:1)
您尝试使用的网址格式(slug:url
)为only valid in Django 2。
如果您使用的是Django 1.11,则需要使用正则表达式 - 如下所示:
url(r'^?P<url>[\w-]+', views.item, name='products')
始终确保您查看your version of Django; - )的文档。
答案 1 :(得分:0)
请将网址格式更改为:
url(r'^?P<url>[\w-]+', views.item, name='products')