Django:如果slug错误,则重定向url

2024-06-28 11:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,可以在每个视图中运行来纠正slug。 例如,如果slug是/12 post about stuff,并且用户输入/12-post-abot_stof,则它们将被正确重定向。问题是不同的视图有不同的url模式,例如:

/posts/post_slug/
...
/posts/post_slug/comments/new

我如何编写一个函数来根据当前的url修改slug名称?在

我正在用一个参数编辑一个视图。我不知道如何动态返回新的url,因为每个视图的url格式不同。在

^{pr2}$

Tags: 函数用户视图urlnew模式postcomments
1条回答
网友
1楼 · 发布于 2024-06-28 11:30:19

如果您想在许多不同的视图中处理请求,中间件是一个不错的选择。在

class RedirectMiddleware(object):
    def process_request(self, request):
        if request.resolver_match.app_name == 'posts' \
                and 'post_slug' in request.resolver_match.kwargs: 
            new_path = None
            # your logic here
            if new_path:
                return redirect(new_path, permanent=True)
        return

在设置中:

^{pr2}$

相关问题 更多 >