const data = '{{ search_user }}'
const rdata = JSON.parse(data.replace(/"/g, '"'))
const input = document.getElementById('user-input_products')
let filteredArr = []
input.addEventListener('keyup', (e)=>{
box.innerHTML = ""
filterMax = (fn, c) => x => c && fn(x) && c--
filter = profiles=> profiles['full_name'].includes(e.target.value)
max = 30
filteredArr = rdata.filter(filterMax(filter, max))
if (filteredArr.length > 0) {
filteredArr.map(profiles=>{
box.innerHTML = `<li><a href="{% url 'user_num' ${profiles['user']} %}">${profiles['full_name']}</a></li>`
})
} else {
box.innerHTML = "No result found"
}
})
當我想將 id 傳遞給innerHTML內的 django url 時,它給了我這個錯誤:
Could not parse the remainder: '${profiles["user"]}' from '${profiles["user"]}'
我該如何解決?
rdata:
[
{
"user": 28,
"full_name": "John"
},
{
"user": 35,
"full_name": "Robert"
},
{
"user": 37,
"full_name": "Mary"
},
{
"user": 38,
"full_name": "Jennifer"
},
]
uj5u.com熱心網友回復:
您不能像這樣將服務器端 Python 代碼與前端 javascript 代碼混合使用。Django 模板被${profiles['user']}視為一個簡單的字串。要解決此問題,您可以將路徑前綴存盤在 JS 變數中,并將用戶鏈接與 JS 模板文字結合起來:
const path_prefix = "{% url 'user_num' %}"
const data = '{{ search_user }}'
const rdata = JSON.parse(data.replace(/"/g, '"'))
const input = document.getElementById('user-input_products')
let filteredArr = []
input.addEventListener('keyup', (e)=>{
box.innerHTML = ""
filterMax = (fn, c) => x => c && fn(x) && c--
filter = profiles=> profiles['full_name'].includes(e.target.value)
max = 30
filteredArr = rdata.filter(filterMax(filter, max))
if (filteredArr.length > 0) {
filteredArr.map(profiles=>{
box.innerHTML = `<li><a href="${path_prefix}${profiles['user']}">${profiles['full_name']}</a></li>`
})
} else {
box.innerHTML = "No result found"
}
})
如果user_num視圖函式的路徑是user_num/,那么${path_prefix}${profiles['user']}將產生 eg user_num/28。如果user_num函式需要引數,您可能必須創建一個新的 URL 定義,或者您可以直接放入實際路徑,例如:user_num/${profiles['user']}.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/408283.html
標籤:
