Python slug和get绝对url之间的关系,我做错了什么?
我现在很困惑,如果有人能澄清这一点,我将非常感谢你的帮助。 我有这样的模特Python slug和get绝对url之间的关系,我做错了什么?,python,django,Python,Django,我现在很困惑,如果有人能澄清这一点,我将非常感谢你的帮助。 我有这样的模特 class Post(models.Model): def get_absolute_url(self): return reverse("post", args={"slug": self.slug}) 及 url(r'^post/(?P[\w\-]+)/$”,views.post,name='post'), 所以get_absolute_url需要指向domain/post/slug.n
class Post(models.Model):
def get_absolute_url(self):
return reverse("post", args={"slug": self.slug})
及
url(r'^post/(?P[\w\-]+)/$”,views.post,name='post'),
所以get_absolute_url需要指向domain/post/slug.name,但它没有这样做……有人知道我如何解决这个问题吗?正如ddsnowboard评论的那样: 它是:
reverse("post", kwargs={"slug": self.slug})
或
kwargs
需要一个字典,args
需要一个数组:
django/core/urlResolver.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 {}
我认为您需要使用
kwargs
。像这样:reverse(“post”,kwargs={“slug”:self.slug})
错误消息是什么?
reverse("post", args=[self.slug])
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 {}