【问题标题】:How to redirect to an absolute url path in django?如何重定向到 django 中的绝对 url 路径?
【发布时间】:2021-10-06 15:33:09
【问题描述】:

我正在尝试使用 Django 模板中的“url”属性从监视列表页面重新路由到“列表”路径。然而,问题是 Django 忽略了它已经在重新路由中使用的 URL 的部分(即“/watchlist”),因此查找路径为“/watchlist/listing_title”的 url 而不仅仅是“/listing_title”,即我想要的是。有没有办法解决这个问题?

urls.py

path("", views.index, name="index"),
path("<str:listing_title>", views.listing, name="listing"),
path("watchlist", views.watchlist, name="watchlist"),

watchlist.html

<a href={% url 'listing' listing.title %}">

【问题讨论】:

  • 它永远不会访问watchlist,因为&lt;str:listing_title&gt; 将匹配/watchlist

标签: django url redirect django-templates


【解决方案1】:

它永远不会访问watchlist,因为&lt;str:listing_title&gt; 将匹配/watchlist。您应该重新排序路径,并使用:

path('', views.index, name='index'),
path('watchlist', views.watchlist, name='watchlist'),
path('<str:listing_title>', views.listing, name='listing'),

Django 将从上到下枚举所有 URL 模式,并“触发”第一个具有匹配 URL 模式的视图。如果我们因此将&lt;str:listing_title&gt; 放在首位,它将匹配watchlist&lt;str:…&gt; 路径部分,因此永远不会触发listing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2019-03-28
    • 2014-08-19
    • 2020-09-26
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    相关资源
    最近更新 更多