Django SlugField漂亮的SEO URL

时间:2016-11-15 14:29:15

标签: python django

我想创建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。

0 个答案:

没有答案