Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Slugify时没有反向匹配_Python_Django - Fatal编程技术网

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%}”
?试图解决此错误。不管有没有,它都不起作用。