0

我有两个与 slugurl 和 pageurl 相关的主要查询:

slugurl 和之间的确切区别是什么 pageurl

为什么slugurl 返回None

4

1 回答 1

2

调试源代码后,在slugurl 简单标签中发现了这个。

    @register.simple_tag(takes_context=True)
    def slugurl(context, slug):
        """Returns the URL for the page that has the given slug."""
        page = Page.objects.filter(slug=slug).first()

        if page:
            # call pageurl() instead of page.relative_url() here so we get the ``accepts_kwarg`` logic
            return pageurl(context, page)

slugurl1:和之间的确切区别是 pageurl什么?

两者 都是标签slugurl_pageurl

slugurlslug 字符串作为输入,其中作为输入的pageurl页面对象

注意:如果页面找到了提及字符串 slug,则在slugurl内部调用。pageurl

2: 为什么 slugurl 返回None .?

如果您在 slugurl 中传递任何字符串(比如说 'hello'),那么该字符串必须是任何Page

 page = Page.objects.filter(slug=slug).first()

如果提及字符串未指定为任何页面的 slug,则该方法将返回 None

如果您遇到 None 问题,请slugurl按照以下两个简单步骤操作:

1:首先检查您的任何页面是否有提及slug。

2:如果没有,请创建一个页面,并在新创建的页面的slug中分配相同的slug字符串。

于 2018-05-22T04:58:27.193 回答