ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

RedirectViewµÄ×÷ÓÃÊÇʲô?

¸üÐÂʱ¼ä:2023Äê01ÔÂ13ÈÕ15ʱ31·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

ºÃ¿Ú±®ITÅàѵ

¡¡¡¡RedirectViewÎªÖØ¶¨ÏòÊÓͼÀ࣬Ëü¼Ì³ÐÁËViewÀ࣬¾ßÓÐViewÀàÌṩµÄËùÓй¦ÄÜ;´ËÍâËü¶¨ÒåÁËһЩ¶ÀÓеÄÊôÐԺͷ½·¨£¬ÊµÏÖÁËÖØ¶¨Ïò¹¦ÄÜ¡£¶ÔRedirectViewÀà³£ÓõÄÌØÓÐÊôÐԺͷ½·¨½øÐнéÉÜ£¬¾ßÌåÈçÏ£º

¡¡¡¡(1)ÊôÐÔ

¡¡¡¡¢Ùurl£ºÖض¨ÏòµÄÄ¿±êURL£¬×Ö·û´®ÐÎʽ£¬ÈôֵΪNoneÒý·¢410(Gone)´íÎó¡£URLÖпɰüº¬²ÎÊý£¬path()º¯Êý¿ÉÒÔ×ÖµäÐÎʽΪÆä´«Öµ¡£

¡¡¡¡¢Úpattern_name£ºÄ¿±êURLÃû³Æ¡£

¡¡¡¡¢Ûpermanent£ºÓÃÓÚÉèÖÃÖØ¶¨ÏòÊÇ·ñΪÓÀ¾ÃÖØ¶¨Ïò£¬Ä¬ÈÏΪFalse£¬±íʾ²»ÉèÖÃΪÓÀ¾ÃÖØ¶¨Ïò¡£

¡¡¡¡¢Üquery_string£ºÓÃÓÚÉèÖÃÊÇ·ñ½«GETÇëÇóÖеIJéѯ×Ö·û´®¸½¼Óµ½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 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿