【问题标题】:Django route giving 404Django路线给出404
【发布时间】:2021-10-08 08:01:55
【问题描述】:

我在 django 主应用的 urls.py 文件中注册了一个 route

router.register(r"visual/(?P<random_url>[\w]+)/$", views.LinkTest, basename="test")

url 模式定义为:

urlpatterns = [
    # Admin
    path("admin/", admin.site.urls),
    # Model API Routes
    path("rest/api/latest/", include(router.urls))
]

这意味着我应该能够通过以下调用访问 viewset

http://localhost:8000/rest/api/latest/visual/random_string/

但我得到了 404

谁能告诉我我做错了什么?

【问题讨论】:

    标签: django django-rest-framework openapi drf-yasg


    【解决方案1】:

    这里的问题是,虽然您的网址 visual/random_string/ 与正则表达式 visual/(?P&lt;random_url&gt;[\w]+)/$ 匹配,但路由器会自动将 /$ 添加到您指定的正则表达式中。

    因此,在内部,您的正则表达式正在转换为与 visual/random_string/ 不匹配的 visual/(?P&lt;random_url&gt;[\w]+)/$/$

    因此,请从您的正则表达式中删除 /$ 并保留以下代码。

    router.register(r"visual/(?P<random_url>[\w]+)", views.LinkTest, basename="test")
    

    【讨论】:

    • 是的,你是对的,它对我有用,谢谢 Mohit
    猜你喜欢
    • 2016-04-06
    • 2019-12-11
    • 2017-06-12
    • 2014-05-19
    • 2011-12-20
    • 2019-11-21
    • 2020-07-18
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多