修改Spring风格Django请求映射后无法访问Admin面板怎么办?
解决django-request-mapping与Django Admin路由冲突问题
问题根源
你用django-request-mapping库的UrlPattern()生成的是自定义对象,并非Django默认识别的标准路由列表。直接用+=拼接普通path路由项时,Admin的路由并没有被正确加入到生效的路由集合中,导致访问/admin/时出现路径不匹配错误。
解决方案
将UrlPattern实例转换为标准的Django路由列表后,再与其他路由合并。这样既能保留Spring风格的请求映射,又能让Admin路由正常生效。
修正后的urls.py代码
from myapp.views import UserView from django.contrib import admin from django.urls import path, include from django_request_mapping import UrlPattern # 初始化UrlPattern并注册视图 custom_patterns = UrlPattern() custom_patterns.register(UserView) # 转换为标准列表后合并所有路由 urlpatterns = list(custom_patterns) + [ path('', include('myapp.urls')), path('admin/', admin.site.urls) ]
验证
重启Django服务后,访问/admin/即可正常进入后台管理面板,同时Spring风格的视图映射也会保持原有功能。
内容的提问来源于stack exchange,提问作者Geo48
相关产品推荐
相关产品推荐

