Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] DJANGO - Error en un if de HTML

Estas en el tema de DJANGO - Error en un if de HTML en el foro de Python en Foros del Web. Buenas, estoy trasteando un poco con Python, me compre un par de libros para aprender el lenguaje y por lo pronto he venido bastante bien. ...
  #1 (permalink)  
Antiguo 05/11/2016, 19:49
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 4 meses
Puntos: 0
DJANGO - Error en un if de HTML

Buenas, estoy trasteando un poco con Python, me compre un par de libros para aprender el lenguaje y por lo pronto he venido bastante bien.

Me surje un error con un ejercicio que es el siguiente

Dentro del body tengo
Código Python:
Ver original
  1. {% if error %}
  2. <p>Por favor no poner un campo vacio</p>
  3.  
  4. {% endif %}

En views.py la funcion que renderiza es:

Código Python:
Ver original
  1. def search(request):
  2.     if 'q' in request.GET and request.GET['q']:
  3.         q = request.GET['q']
  4.         books = Book.objects.filter(title__contains=q)
  5.         return render(request, 'search_results.html', {'books': books, 'query' : q})
  6.     else:
  7.         message = 'No pusiste nada en la busqueda'
  8.         return render(request, 'search_form.html', {'error' : True})

Si el usuario escribealgo en el formulario se renderiza search?results correctamente , si en cambio no pone nada deberia renderizar la misma pagina de search_form.html pero con el contexto error:True y asi lanzar el IF.

El problema es que cuando voy a 127.0.0.1/search el formulario ya aparece con el texto Por favor no poner un campo vacio el cual solo deberia aparecer si se redibuja el html

Gracias desde ya por las respuestas
  #2 (permalink)  
Antiguo 06/11/2016, 02:56
 
Fecha de Ingreso: diciembre-2012
Mensajes: 128
Antigüedad: 12 años
Puntos: 12
Respuesta: DJANGO - Error en un if de HTML

Y cual fue la solución?
__________________
Comparador facturas de luz

Etiquetas: busqueda, django, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:19.