當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。