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"
}
})
當(dāng)我想將id傳遞給innerHTML內(nèi)部的django url時(shí),會(huì)出現(xiàn)以下錯(cuò)誤:
Could not parse the remainder: '${profiles["user"]}' from '${profiles["user"]}'
我怎樣才能解決這個(gè)問題?
rdata:
[
{
"user": 28,
"full_name": "John"
},
{
"user": 35,
"full_name": "Robert"
},
{
"user": 37,
"full_name": "Mary"
},
{
"user": 38,
"full_name": "Jennifer"
},
]
不能像這樣將服務(wù)器端Python代碼與前端javascript代碼混合使用。Django模板將
${profiles['user']}
視為一個(gè)簡(jiǎn)單字符串。要解決此問題,您可以將路徑前綴存儲(chǔ)在JS變量中,并將用戶鏈接與JS模板文字相結(jié)合:如果
user_num
視圖函數(shù)的路徑為user_num/
,則${path_prefix}${profiles['user']}
將產(chǎn)生例如user_num/28
。如果user_num
函數(shù)需要參數(shù),您可能需要?jiǎng)?chuàng)建一個(gè)新的URL定義,或者您可以直接輸入實(shí)際路徑,例如:user_num/${profiles['user']}
。