当前路径,与任何这些都不匹配

时间:2020-01-27 12:31:09

标签: python django

所以我下面的代码是Django 1.8中的代码

from django.conf.urls import patterns, url
from account import views
from django.contrib.auth import views as auth_views


urlpatterns = patterns('',
    url(r'^$', views.index, name='profile'),
    url(r'^api/get_users/(?P<term>.*)', views.get_users),
    url(r'^leaderboard/(?P<board_type>.*)', views.leaderboard),
    url(r'^admintools/(?P<action>.*)', views.admintools),
)

我将其修改为django 2.2

from django.conf.urls import  url
from . import views
from django.urls import re_path,path
from django.contrib.auth import views as auth_views


urlpatterns = [
    path('', views.index, name='profile'),
    path('api/get_users/(?P<term>.*)', views.get_users),
    path('leaderboard/(?P<board_type>.*)', views.leaderboard),
    path('admintools/(?P<action>.*)', views.admintools),
]

我收到错误消息,当前路径帐户/管理工具与任何这些都不匹配

1 个答案:

答案 0 :(得分:3)

“简单的解决方案之一” 是使用re_path(...)而不是 path()

from django.urls import re_path
from account import views

urlpatterns = [
    re_path(r'^$', views.index, name='profile'),
    re_path(r'^api/get_users/(?P<term>.*)', views.get_users),
    re_path(r'^leaderboard/(?P<board_type>.*)', views.leaderboard),
    re_path(r'^admintools/(?P<action>.*)', views.admintools),
]

re_path(...) 函数将完成与Django url(...) 相同的功能 。

相关问题