我想尝试将在django 3.2.6上运行良好的django应用程序升级到下一个版本,但即使在测试中,我也遇到了不推荐的url
(https://docs.djangoproject.com/en/4.0/ref/urls/)。
所以我替换了urls.py
中的最后一行
router = routers.DefaultRouter()
router.register(r'products', views.ProductViewSet, basename = "products")
urlpatterns = [
...,
url('api/', include(router.urls)),
]
至:
urlpatterns = [
...,
path('api/', include(router.urls)),
]
但是在一个具有url http://127.0.0.1:8003/productspage/
的站点上,我现在得到了错误消息:The current path, productspage/api/products/, didn’t match any of these.
django 3.26的ajax调用中的api路径正在工作:
async function doAjax ( ) {
let result = await $.ajax({url: "api/products/"});
}
所以我完全明白为什么这样做行不通--但是如何(以及在哪里?)我能修好它吗?
我考虑将一个绝对路径(如${window.location.hostname}/api/products/
)交给ajax,还是为模板提供一个基名?我能在Django修好它吗?
https://stackoverflow.com/questions/70454390
复制相似问题