1. <optgroup id="o3fot"></optgroup>
    <big id="o3fot"></big>
  2. <label id="o3fot"></label>
  3. 教育行業A股IPO第一股(股票代碼 003032)

    全國咨詢/投訴熱線:400-618-4000

    RedirectView的作用是什么?

    更新時間:2023年01月13日15時31分 來源:傳智教育 瀏覽次數:

    好口碑IT培訓

      RedirectView為重定向視圖類,它繼承了View類,具有View類提供的所有功能;此外它定義了一些獨有的屬性和方法,實現了重定向功能。對RedirectView類常用的特有屬性和方法進行介紹,具體如下:

      (1)屬性

     ?、賣rl:重定向的目標URL,字符串形式,若值為None引發410(Gone)錯誤。URL中可包含參數,path()函數可以字典形式為其傳值。

     ?、趐attern_name:目標URL名稱。

     ?、踦ermanent:用于設置重定向是否為永久重定向,默認為False,表示不設置為永久重定向。

     ?、躴uery_string:用于設置是否將GET請求中的查詢字符串附加到URL,默認為False,表示不將查詢字符串附加到URL,直接丟棄。

      (2)方法

      RedirectView類的常用方法為get_redirect_url(),該方法用于構造重定向的目標URL,它的語法格式如下:

       get_redirect_url(self, *args, **kwargs)

      get_redirect_url()方法默認使用類的url屬性設置的目標URL,若URL屬性未設置,get_redirect_url()方法嘗試根據pattern_name屬性設置的URL名稱,以反向解析的方式匹配URL。

      下面分別對本章實例1的views.py和goods/urls.py文件進行修改,基于RedirectView實現刪除商品的功能。

      (1)views.py

      在views.py中定義繼承了RedirectView類的視圖類DeleteView,在該類中使用url屬性設置重定向的目標URL、重寫get_rediect_url()方法,在get_redirect_url()方法中刪除用戶選擇的商品,并返回重定向。具體代碼如下:

       class DeleteGood(RedirectView):
           url = '/'
           permanent = True
           def get_redirect_url(self, *args, **kwargs):
               good = get_object_or_404(Goods, id=kwargs['gid'])
               good.delete()
               return super().get_redirect_url(*args, **kwargs)

      (2)urls.py

      在goods應用的urls.py文件中修改刪除商品的URL,修改后的代碼如下:

       path('delete<int:gid>', DeleteGood.as_view()),

      以上代碼需替換goods應用下子路由中用于刪除商品的數據的路由。

      views.py和goods/urls.py修改完成后,重啟項目,訪問網頁,若單擊“刪除”能刪除商品,說明基于RedirectView類的商城商品功能成功實現。

    領取課程

    0 分享到: