Обновление Django с 3.2 до 4.0 и пути DRF
Я хотел попробовать обновить свое приложение django, которое отлично работает на django 3.2.6, до следующего выпуска, но даже во время тестирования я наткнулся на устаревший
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.
Путь для api в вызовах ajax с django 3.26 работал:
async function doAjax ( ) {
let result = await $.ajax({url: "api/products/"});
}
так что я полностью понимаю, почему это не сработает, но как (и где?) мне это исправить?
Я думал о том, чтобы передать абсолютный путь (например,
${window.location.hostname}/api/products/
) в ajax или указав базовое имя для шаблона? Могу я исправить это в Django?