我想嘗試將在 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 中修復它嗎?
uj5u.com熱心網友回復:
在您的情況下,Djangourl是別名re_path而不是別名path
...
re_path('api/', include(router.urls)),
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391533.html
