我用的是-django taggit,效果很好。但是需要做一些修改来扩展DetailView url,在它们之后,TagListView会出现404错误。因此,我解决了get_absolute_url函数中的kwargs问题,但我不知道如何解决它。
所以,好好工作:models.py
def get_absolute_url(self):
return reverse("posts:detail", kwargs={"slug": self.slug})urls.py:
url(r'^(?P<slug>[\w-]+)/$', Detail.as_view(), name='detail'),
url(r'^tag/(?P<slug>[\w-]+)/$', TagListView.as_view(), name='tagged'),views.py:
class TagListView(ListView):
template_name = "posts/postlist.html"
paginate_by = "3"
def get_queryset(self):
return Post.objects.filter(tags__slug=self.kwargs.get("slug")).all()
def get_context_data(self, **kwargs):
context = super(TagListView, self).get_context_data(**kwargs)
context["tag"] = self.kwargs.get("slug")
return context当我将“类别”:self.category添加到get_absolute_url和urls中时,它会粉碎:
models.py:
def get_absolute_url(self):
return reverse("posts:detail", kwargs={"category": self.category, "slug": self.slug})urls.py:
url(r'^(?P<category>[\w-]+)/(?P<slug>[\w-]+)/$', Detail.as_view(), name='detail'),
url(r'^tag/(?P<slug>[\w-]+)/$', TagListView.as_view(), name='tagged'),我想get_context_data功能应该有变化,但看不出到底是什么。有什么想法或建议吗?
发布于 2018-02-06 09:24:41
因此,我通过将urls顺序更改为:
url(r'^tag/(?P<slug>[\w-]+)/$', TagListView.as_view(), name='tagged'),
url(r'^(?P<category>[\w-]+)/(?P<slug>[\w-]+)/$', Detail.as_view(), name='detail'),我不确定这是个好办法,但效果很好。如果你还有假肢-请告诉我
发布于 2018-02-05 15:23:05
您正在尝试访问甚至没有传递给函数的kwargs。你应该到处都有
def func(self, *args, **kwargs):https://stackoverflow.com/questions/48624223
复制相似问题