当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django RedirectView用法及代码示例


本文介绍 django.views.generic.base.RedirectView 的用法。

声明

class django.views.generic.base.RedirectView

重定向到给定的 URL。

给定的 URL 可能包含 dictionary-style 字符串格式,它将根据 URL 中捕获的参数进行插值。因为关键字插值已完成 always(即使没有传入参数),所以 URL 中的任何 "%" 字符都必须写为 "%%",以便 Python 将它们转换为输出时的单个百分号。

如果给定的 URL 是 None ,Django 将返回一个 HttpResponseGone (410)。

祖先 (MRO)

此视图从以下视图继承方法和属性:

方法流程图

  1. setup()
  2. dispatch()
  3. http_method_not_allowed()
  4. get_redirect_url()

示例views.py

from django.shortcuts import get_object_or_404
from django.views.generic.base import RedirectView

from articles.models import Article

class ArticleCounterRedirectView(RedirectView):

    permanent = False
    query_string = True
    pattern_name = 'article-detail'

    def get_redirect_url(self, *args, **kwargs):
        article = get_object_or_404(Article, pk=kwargs['pk'])
        article.update_counter()
        return super().get_redirect_url(*args, **kwargs)

示例urls.py

from django.urls import path
from django.views.generic.base import RedirectView

from article.views import ArticleCounterRedirectView, ArticleDetailView

urlpatterns = [
    path('counter/<int:pk>/', ArticleCounterRedirectView.as_view(), name='article-counter'),
    path('details/<int:pk>/', ArticleDetailView.as_view(), name='article-detail'),
    path('go-to-django/', RedirectView.as_view(url='https://www.djangoproject.com/'), name='go-to-django'),
]

属性

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.views.generic.base.RedirectView。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。