slu and与绝对网址之间的关系,我做错了什么?

时间:2016-02-23 15:46:28

标签: python django

我现在很困惑,如果有人能澄清这一点,我会非常感谢你的帮助。 所以我有像这样的models.py

class Post(models.Model):

    def get_absolute_url(self):
        return reverse("post", args={"slug": self.slug})

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

所以get_absolute_url需要指向domain / post / slug.name但是它没有这样做....有谁知道我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如ddsnowboard所评论的那样:

它是:

reverse("post", kwargs={"slug": self.slug})

reverse("post", args=[self.slug])

kwargs需要一个字典,args需要一个数组:

在django / core / urlresolvers.py中开始方法定义:

def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
    if urlconf is None:
        urlconf = get_urlconf()
    resolver = get_resolver(urlconf)
    args = args or []
    kwargs = kwargs or {}