Использование схемы django url с Javascript fetch API
Я хочу использовать схему django url при работе с fetch API, но она не понимается, и в итоге я получаю URL в приведенном виде.
Я следовал этому руководству (извините, на французском), в котором автор добился этого очень легко. Продемонстрировано здесь
Код примера :
let url = "{% url 'myapp:search_user' %}"
const request = new Request(url, {method: 'POST', body: formData});
fetch(request)
.then(response => response.json())
.then(result => {
console.log(result)
})
Что заканчивается консольной ошибкой :
POST http://127.0.0.1:8000/myapp/actions/%7B%%20url%20'myapp:search_user'%20%%7D 404 (Not found)
Конечно, мой URL объявлен в url.py и хорошо работает при использовании в шаблонах.
Если я заменю "url" на относительный путь, это будет работать хорошо, но это не дружелюбно к django.
Что я упускаю?
Если вы хотите получить доступ к переменной Django во внешнем Js файле
Объявите переменную в теге js скрипта.
<script> let url = "{% url 'app_label:my_url' %}";</srcipt>
Вставьте ваш внешний js файл, в котором у вас теперь есть доступ к определенной переменной url
external_js.js
let django_url = url;
У меня была такая же проблема при работе с ajax, и я просто использовал прямой url, как он отображается в строке поиска. Вместо {% url 'myapp:search_user' %} попробуйте "mymapp/search_bar" или как это выглядит в вашем файле urls.py.