通过django url传递2个变量

问题描述 投票:1回答:1

我尝试通过url config传递2个变量

URL.朋友

url(r'^essays/(?P<category>[-\w]+)/(?P<slug>[-\w]+)/$', views.EssayDetailView.as_view(), name='essay_view'),

view.朋友

class EssayDetailView(DetailView):
    model = Essay

    def get_context_data(self, **kwargs):
        context = super(EssayDetailView, self).get_context_data(**kwargs)
        context['category'] = Category.objects.get(slug=self.kwargs['category'])

        return context

但如果我在模板url标签中使用这样的话

<a href = "{{essay.get_absolute_url}}">{{essay.title}}</a>

我错了NoReverseMatch。使用1个参数可以正常工作。例如url:

url(r'^(?P<slug>[-\w]+)/$', views.ArticleDetailView.as_view(), name='article_view'),

如何将2个变量传递给通用视图?或者我应该怀疑自己的观察方法?

python django django-views django-urls
1个回答
1
投票

这是错误的

def get_absolute_url(self):
        return reverse('articles:essay_view', args=[self.category.slug, self.slug])

现在工作tnx

© www.soinside.com 2019 - 2024. All rights reserved.