Django 优先使用 <something> 而不是 admin/and 登录/ url

Django is giving preference to <something> rather than the admin/and login/ urls

我的应用 urls.py 是:

from django.urls import path
from . import views
from django.conf.urls import (handler400, handler403, handler404, 
handler500)

app_name = "bca"

handler404 = 'my_app.views.handler404'

urlpatterns = [
    path("", views.index, name='index'),
    path("login/", views.login_request, name='login'),
    path("register/", views.register, name='register'),
    path("logout/", views.logout_request, name='logout'),
    path("<match>", views.match, name='match'),# this is being preferred first...
]

每当我在 url 中尝试 admin/ 时,它都会给出一个值错误

我该怎么办?

您的 URL 模式适用于 /admin//login/ 等等(都带有尾部斜线)。该错误显示您将要 /admin (没有尾部斜线)。如果添加斜杠,您应该会看到 Django 管理员。

Django 中的默认行为是将 /admin(没有尾部斜线)重定向到 /admin/。但是,当您添加像 path("<match>", ...) 这样的包罗万象的模式时,此行为将停止工作。因此,您应该仔细考虑您是否真的想要一个包罗万象的模式。另一种方法是在 404 页面上显示 match 视图中的内容。