[pyar] Django querys

Jairo Trad frodobolsonxx en gmail.com
Dom Mar 31 23:12:22 ART 2013


El truco esta aca...

query = request.GET.get("q", " ")

Aca hace un get, del request que viene. La primera vez, el requests no trae
ningún elemento q, entonces a query le asigna un string vació. (El método
get lleva un segundo parámetro opcional que es el valor por default que
retorna si no encuentra el key que le pasaste)

Los strings vacíos se evalúan como False en un If. entonces, como el if
query: te da False no haces la busqueda y retornas la lista vacia de
resultados result junto con el strinq vacio en query.

Es un detalle que tiene mas que ver con python que con Django.

Saludos, Jairo




El 31 de marzo de 2013 23:01, Ramiro Floydant <ramirotrvnt18 en gmail.com>escribió:

> Me olvidé de explicar: Se que el "if query" de la plantilla hace
> referencia a la variable "query" y no al if statement de la función.
>
>
> 2013/3/31 Ramiro Floydant <ramirotrvnt18 en gmail.com>
>
>> Buenas!
>> Estoy estudiando el "Practical Django Projects" después de haber leído
>> otros tutoriales, así que ya tengo bastante experiencia como para entender
>> los fundamentos de django.
>> Me encontré con una función de búsqueda que anda perfecta, pero no pude
>> asimilar del todo:
>>
>> def search(request):
>>       query = request.GET.get("q", " ")
>>       results = []
>>       if query:
>>                  results =
>> FlatPage.objects.filter(content__icontains=query)
>>       return render(request, 'templates/template.html'. { 'query': query,
>>
>>    'results': results })
>>
>> El concepto que no logro entender es el del "if query". Justamente porque
>> uso esa misma expresión en la plantilla y cumple otra función:
>>
>> {% if results %}
>>  <ul>
>>       {% for page in results %}
>>               <li><a href="{{ page.get_absolute_url }}">{{ page.tittle
>> }}</a></li>
>>       {% endfor %}
>>  </ul>
>>  {% else %}
>>     {% if query %}
>>           <p> No se encontraron resultados </p>
>>     {% else %}
>>           <p> Escriba una búsqueda y aprete "Buscar" </p>
>>     {% endif %}
>>   {% endif %}
>>
>> Una buena forma de que entienda es si pueden agregar comentarios
>> explicativos en algunas líneas como por ej: if query: # Si se ejecuta una
>> búsqueda, entonces:
>>
>> Muchas gracias de antemano.
>>
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Jairo Trad
Ing. en Computación - FCEFyN - UNC
ar.linkedin.com/in/ingjairotrad
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130331/53ede227/attachment.html>


More information about the pyar mailing list