我想创建SEO友好产品网址: -
以下是我的网址: -
url(r'^ad/(?P<slug>[-\w\d]+),(?P<pk>\d+)/$', (views.AdDetail.as_view()), name='item_detail'),
我的观点: -
class AdDetail(View):
template_name = 'ads/ad_detail.html'
def get(self, request, slug, pk, *args, **kwargs):
ad = AdDetailAPI.get_ad(pk)
return render(request, self.template_name, ctx)
我的模板: -
<a href="{% url 'item_detail' slug=item.slug pk=item.id %}">
这就是问题所在,它说NoReverseMatch
Reverse for 'item_detail' with arguments '()' and keyword arguments '{u'pk': 47L, u'slug': ''}' not found. 2 pattern(s) tried: [u'ad/(?P<slug>[-\\w\\d]+),(?P<pk>\\d+)\\.(?P<format>[a-z0-9]+)/?$', 'ad/(?P<slug>[-\\w\\d]+),(?P<pk>\\d+)/$']
问题究竟在哪里?
此外,当我浏览/ad/abcd,46
或/ad/pqr,46
时,按预期显示对象46的内容。但浏览器网址从/ad/pqr,46
更改为/ad/abcd,46
。我想要的是,无论在浏览器地址中输入了什么slugfield,地址栏都应显示分配的实际标题slugfield。