Moh*_*mir 1 django django-templates django-models django-views
我已经get_absolute_url在模型中使用过反向内部方法,但是我希望我对反向和重定向之间的区别有所了解,我曾尝试在Google上进行搜索,但是几乎没有什么我不知道该怎么写说服堆栈溢出,我没有其他描述
反向和重定向具有不同的含义。这是一个简单的解释:
reverse在Django中,用于查找给定资源的URL。假设您有一个博客网站,并且要从主页上提供指向博客文章的链接。当然,您可以只进行硬编码/posts/123/,也可以更改URL中博客文章的ID,但这以后很难更改您的URL。这就是Django带有反向功能的原因。您需要做的就是传递URL路径的名称(在中定义urlpatterns),Django会为您找到正确的URL。之所以称为反向,是因为它是确定应为给定URL调用哪个视图的反向过程(该过程称为解析)。
重定向并非特定于Django或任何其他Web框架。重定向意味着对于给定的URL(或操作),应指示用户访问特定的URL。这可以通过发送特殊的重定向请求来完成,浏览器将从那里为用户处理该重定向请求,因此在此过程中无需用户采取任何操作。您可以在重定向过程中使用反向来确定应将用户重定向到的URL。
GwynBleidD 已经给了你答案,但你可能会感到困惑是有原因的。Djangoredirect快捷方式接受多种不同形式的参数。其中之一是带有参数的 URL 模式鬃毛,然后将其传递给反向以生成要重定向到的实际 URL。但这只是启用通用模式的捷径。