Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

216
Vistas
Cree la URL de Django dentro de la función JS basada en 3 modelos diferentes

Tengo una función que muestra títulos de 3 modelos diferentes en Django. Quiero agregar un enlace a cada título para que redirija al usuario a la URL adecuada.

La función search_autocomplete devuelve todos los títulos correctamente en 1 lista, sin embargo, tengo problemas con la creación de la dirección URL en el archivo js. Estoy usando esta biblioteca para crear una lista de títulos.

Digamos que el usuario pone "python es increíble" en la barra de búsqueda. La dirección URL debe contener rootURl/modelUrl/slug .

  1. Si el título proviene del modelo del artículo, debería verse así: http://127.0.0.1:8000/article/python-is-amazing
  2. Si el título proviene del modelo qa, debería verse así: http://127.0.0.1:8000/qa/python-is-amazing
  3. Si el título proviene del modelo de video, debería verse así: http://127.0.0.1:8000/video/python-is-amazing

El segundo problema es que quiero mostrar una lista de títulos en la lista de autocompletar, pero necesito pasar el campo slug a la dirección URL. ¿Cómo puedo hacer eso?

archivo js

 //root URL const rootUrl = 'http://127.0.0.1:8000' //models URLs const articleURL = 'article' const qaURL = 'qa' const videoURL = 'video' new Autocomplete('#autocomplete', { search: input => { const url = `/search/?title=${input}` return new Promise(resolve => { if (input.length < 3) { return resolve([]) } fetch(url) .then(response => response.json()) .then(data => { resolve(data.data) }) }) }, onSubmit: result => { window.open(`${rootbUrl}/${qaURL}/${encodeURI(result)}`) }, autoSelect: true })

vistas.py

 def search_autocomplete(request): query = request.GET.get('title') search_list = [] if query: article_list = Article.objects.search_one(query=query).order_by('-publish') qa_list = QA.objects.search_one(query=query).order_by('-publish') video_list = Video.objects.search_one(query=query).order_by('-publish') search_list = map(lambda x: x.title, chain(article_list, qa_list, video_list)) return JsonResponse({'status':200, 'data': list(search_list)})
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda