Как написать строку ввода jQuery так, чтобы она работала со строкой запроса Django
Я работаю над приложением для поиска по имени, но у меня возникла проблема с тем, чтобы оно работало со строкой запроса Django. Проблема, которую я заметил, возникает из-за того, что мой тип ввода JavaScript со строкой ${input} при добавлении в строку запроса Django, например, "address/get-name/? search=${input}" не возвращает объект запроса или данные полезной нагрузки, вместо этого он возвращает пустой список, но когда я делаю поиск через браузер, он возвращает все данные поискового запроса, например, "address/get-name/?search=smith", Теперь как мне получить ввод через мои скрипты без необходимости использовать тип ввода запроса java скриптов ${input} с django, так что пусть я получу строку запроса, как это "address/get-name/?search=james"? Вот мой скрипт, я новичок в JavaScript
<script>
new Autocomplete('#autocomplete',{
search : input => {
console.log(input)
const url = "/address/get-names/?search=${input}"
return new Promise(resolve => {
fetch(url)
.then( (response) => response.json())
.then( data => {
console.log(data.playload)
resolve(data.playload)
})
})
},
rennderResult : (result, props) =>{
console.log(props)
let group = ''
if (result.index % 3 == 0 ){
group = '<li class="group">Group</li>'
}
return '${group}<li ${props}><div class="wiki title">${result.name}</div></li>'
}
})
</script>
my view.py
def get_names(request):
search = request.GET.get('search')
payload = []
if search:
objs = Names.objects.filter(name__startswith=search)
for obj in objs:
payload.append({
'name' : obj.name
})
return JsonResponse({
'200': True,
'playload': payload
})
Проблема в вашем синтаксисе javascript, это
const url = `/address/get-names/?search=${input}`
вместо
const url = "/address/get-names/?search=${input}"