Python 使用Slugify时没有反向匹配
模型字段:Python 使用Slugify时没有反向匹配,python,django,Python,Django,模型字段: url_slug = models.SlugField(default='', max_length=200, null=False) 模型方法: def get_absolute_url(self): new_kwargs = { 'pk': self.pk, 'url_slug': self.url_slug } return reverse('post-detail', kwargs=new_kwargs) def s
url_slug = models.SlugField(default='', max_length=200, null=False)
模型方法:
def get_absolute_url(self):
new_kwargs = {
'pk': self.pk,
'url_slug': self.url_slug
}
return reverse('post-detail', kwargs=new_kwargs)
def save(self, *args, **kwargs):
value = self.title
self.url_slug = slugify(value, allow_unicode=True)
super().save(*args, **kwargs)
URL.py:
path('blogs/<str:url_slug>-<int:pk>/', BlogDetailView.as_view(), name='post-detail'),
错误:
Reverse for 'post-detail' with arguments '(56,)' not found. 1 pattern(s) tried: ['blogs\\/(?P<url_slug>[^/]+)\\-(?P<pk>[0-9]+)\\/$']
未找到参数为“(56,)”的“发布详细信息”的反向。尝试了1个模式:[“博客\/(?P[^/]+)\\-(?P[0-9]+)\\/$”]
不知道这里有什么问题吗
编辑:
可能值得注意的是,我在创建了几个模型对象之后创建了Slagify方法,但是我返回并为所有模型对象添加了
url\u slug
字段。我认为您缺少的是,您应该使用模型方法。像
"{{ blog.get_absolute_url }}"
因为您已经定义了它。确保不要在模板中调用该方法,因为它将被自动调用。我认为您缺少的是,您应该使用model方法。像
"{{ blog.get_absolute_url }}"
因为您已经定义了它。确保不要在模板中调用该方法,因为它将被自动调用。使用以下方法:
def get_absolute_url(self):
new_kwargs = {
'slug': self.url_slug,
'pk': self.pk
}
网址:
path('blogs/-',blogtailview.as_view(),name='post-detail'),
模板href:
“{{blog.get_absolute\u url}}”
使用以下方法:
def get_absolute_url(self):
new_kwargs = {
'slug': self.url_slug,
'pk': self.pk
}
网址:
path('blogs/-',blogtailview.as_view(),name='post-detail'),
模板href:
“{{blog.get_absolute_url}}”
为什么要在中使用
“{%url'post detail'blog.url|slugify blog.pk%}”
尝试解决此错误。不管有没有,它仍然不起作用。为什么在中使用
“{%url'post detail'blog.url|slug | slagify blog.pk%}”
?试图解决此错误。不管有没有,它都不起作用。