Estoy trabajando en una aplicación de búsqueda de nombres pero tengo un desafío para que funcione con la cadena de consulta de Django, el desafío que observé proviene de mi tipo de entrada de JavaScript con la cadena ${input} cuando se agrega a la cadena de consulta de Django, por ejemplo. "address/get-name/?search=${input}" no devuelve el objeto de consulta o los datos de carga útil, sino que devuelve una lista vacía, pero cuando realizo una búsqueda a través del navegador, devuelve todos los datos de la consulta de búsqueda, por ejemplo, " address/get-name/?search=smith", Ahora, ¿cómo obtengo información a través de mis scripts sin tener que usar el tipo de entrada de consulta de scripts java ${input} con django para obtener una cadena de consulta como esta "address/get -nombre/?buscar=james" ? Aquí está mi script, soy un novato en 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) }) }) }, renderResult : (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>mi vista.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 })El problema es su sintaxis de javascript, es
const url = `/address/get-names/?search=${input}`en vez de
const url = "/address/get-names/?search=${input}"