我尝试通过 url 配置传递 2 个变量
url.py
url(r'^essays/(?P<category>[-\w]+)/(?P<slug>[-\w]+)/$', views.EssayDetailView.as_view(), name='essay_view'),
查看.py
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(r'^(?P<slug>[-\w]+)/$', views.ArticleDetailView.as_view(), name='article_view'),
如何将 2 个变量传递给通用 View ?或者我应该编写自己的 View 方法?
最佳答案
输入错误
def get_absolute_url(self):
return reverse('articles:essay_view', args=[self.category.slug, self.slug])
现在可以工作了
关于python - 通过django url传递2个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30501523/