首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-taggit kwargs理解

Django-taggit kwargs理解
EN

Stack Overflow用户
提问于 2018-02-05 13:58:03
回答 2查看 149关注 0票数 0

我用的是-django taggit,效果很好。但是需要做一些修改来扩展DetailView url,在它们之后,TagListView会出现404错误。因此,我解决了get_absolute_url函数中的kwargs问题,但我不知道如何解决它。

所以,好好工作:models.py

代码语言:javascript
复制
    def get_absolute_url(self):
       return reverse("posts:detail", kwargs={"slug": self.slug})

urls.py:

代码语言:javascript
复制
    url(r'^(?P<slug>[\w-]+)/$', Detail.as_view(), name='detail'),
    url(r'^tag/(?P<slug>[\w-]+)/$', TagListView.as_view(), name='tagged'),

views.py:

代码语言:javascript
复制
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:

代码语言:javascript
复制
def get_absolute_url(self):
       return reverse("posts:detail", kwargs={"category": self.category, "slug": self.slug})

urls.py:

代码语言:javascript
复制
    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功能应该有变化,但看不出到底是什么。有什么想法或建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-06 09:24:41

因此,我通过将urls顺序更改为:

代码语言:javascript
复制
    url(r'^tag/(?P<slug>[\w-]+)/$', TagListView.as_view(), name='tagged'),
    url(r'^(?P<category>[\w-]+)/(?P<slug>[\w-]+)/$', Detail.as_view(), name='detail'),

我不确定这是个好办法,但效果很好。如果你还有假肢-请告诉我

票数 0
EN

Stack Overflow用户

发布于 2018-02-05 15:23:05

您正在尝试访问甚至没有传递给函数的kwargs。你应该到处都有

代码语言:javascript
复制
def func(self, *args, **kwargs):
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48624223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档