simplify query

22 views
Skip to first unread message

miguel angel lopez mendo

unread,
Nov 10, 2015, 4:06:17 PM11/10/15
to Django users
 a = Clientes.objects.filter( Nombre__startswith='A').order_by('Nombre')
 b = Clientes.objects.filter( Nombre__startswith='B').order_by('Nombre')
 c = Clientes.objects.filter( Nombre__startswith='C').order_by('Nombre')
 d = Clientes.objects.filter( Nombre__startswith='D').order_by('Nombre')
 e = Clientes.objects.filter( Nombre__startswith='E').order_by('Nombre')
 f = Clientes.objects.filter( Nombre__startswith='F').order_by('Nombre')
 g = Clientes.objects.filter( Nombre__startswith='G').order_by('Nombre')
 h = Clientes.objects.filter( Nombre__startswith='H').order_by('Nombre')
 i = Clientes.objects.filter( Nombre__startswith='I').order_by('Nombre')
 j = Clientes.objects.filter( Nombre__startswith='J').order_by('Nombre')
 k = Clientes.objects.filter( Nombre__startswith='K').order_by('Nombre')
 l = Clientes.objects.filter( Nombre__startswith='L').order_by('Nombre')
 m = Clientes.objects.filter( Nombre__startswith='M').order_by('Nombre')
 n = Clientes.objects.filter( Nombre__startswith='N').order_by('Nombre')
 o = Clientes.objects.filter( Nombre__startswith='O').order_by('Nombre')
 p = Clientes.objects.filter( Nombre__startswith='P').order_by('Nombre')

luk...@riseup.net

unread,
Nov 10, 2015, 4:14:02 PM11/10/15
to django...@googlegroups.com, miguel angel lopez mendo
Haven't run this code, but you could try something like:

```
import string

myletters = string.ascii_letters[:16]
objects = []
order = 'Nombre'
for letter in myletters:
filters = {'Nombre__startswith': letter}

objects.append(Clientes.objects.filter(**filters).order_by(order)
```

Hope that helps,
Luke

miguel angel lopez mendo

unread,
Nov 10, 2015, 4:30:34 PM11/10/15
to Django users, kanab...@gmail.com, luk...@riseup.net

i have the next view but it does not work  

also have the model 



the error is the follow

luk...@riseup.net

unread,
Nov 10, 2015, 4:36:25 PM11/10/15
to django...@googlegroups.com

miguel angel lopez mendo

unread,
Nov 10, 2015, 4:46:57 PM11/10/15
to Django users, luk...@riseup.net

ya lo acomode pero aun asi me manda este error


Te dejo mi template para que veas tambien 

<div class='container'>

<h3></h3>

<hr />

{% for clientes in objects %}

<div class="col-md-4 col-sm-offset-1">

<br>

<p align="justify"><font size=3>Nombre del Cliente: {{ cliente.Nombre}}</p></font>

<p align="justify"><font size=2>Medio por el cual llego: {{ cliente.get_medio_display}}<p></font> 

</div>

{% endfor %}

</div>

{% endblock %}

Luke M

unread,
Nov 10, 2015, 5:25:17 PM11/10/15
to miguel angel lopez mendo, Django users
Yo no se verdaderamente si estas 'trolling' ... pero bueno, si no, puedo
decirte exactamente lo que pasa - usas `objects.appened` en lugar de
`objects.append`, a ver:
https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

Despues el 'for' loop, tienes una lista de listas que son objetos de
filtro que contiene los resultos de lo que has buscado.

Eso es algo differente en comparacion de lo que ya tuviste cuando
pasaste el `Clientes` objeto dentro el template.

On 10.11.2015 17:46, miguel angel lopez mendo wrote:
> ya lo acomode pero aun asi me manda este error
> <https://lh3.googleusercontent.com/-7SmUF6IDdxo/VkIfOsntrPI/AAAAAAAAAg8/ohvr7a1ZWWU/s1600/Captura%2Bde%2Bpantalla%2B2015-11-10%2Ba%2Blas%2B10.44.43%2Ba.m..png>
> <https://lh3.googleusercontent.com/-qCaTL7AhvTQ/VkIbR0E2jqI/AAAAAAAAAgo/82RRntPAfzM/s1600/Captura%2Bde%2Bpantalla%2B2015-11-10%2Ba%2Blas%2B10.28.43%2Ba.m..png>>
>
> >
> >
> <https://lh3.googleusercontent.com/-y6iDerxsJQM/VkIbpx5j19I/AAAAAAAAAgw/OYdyYTRJgME/s1600/Captura%2Bde%2Bpantalla%2B2015-11-10%2Ba%2Blas%2B10.30.09%2Ba.m..png

miguel angel lopez mendo

unread,
Nov 10, 2015, 7:18:35 PM11/10/15
to Django users, kanab...@gmail.com, luk...@riseup.net
Jajaja para nada de hecho ya quedo lo deje asi para cualquiera que lo necesite:


-------------------view------------------------------

def clientes(request):
    clientes = Clientes.objects.order_by('Nombre')
    clientes2 = Clientes.objects.order_by('Nombre').filter(medio='1')
    clientes3 = Clientes.objects.order_by('Nombre').filter(medio='2')
    clientes4 = Clientes.objects.order_by('Nombre').filter(medio='3')
    medios = Clientes.objects.order_by('tipo')
    abecedario = string.ascii_letters[:26]
    objects = []
    order = 'Nombre'
    for letra in abecedario:
        filters = {'Nombre__startswith': letra}
        objects.append({letra : Clientes.objects.filter(**filters).order_by(order) })
    template = 'products/Clientes.html'
    return render(request, template, locals())


----------------template-----------------------


<div class='container'>
<div class=' col-sm-offset-1 '>
{% for letra in objects %}
    {% for key, clientes in letra.items %}
       
    <h1 class = "text-transform: uppercase"> {{key}}</h2>
      <hr>
    {% for cliente in clientes %}
      <a href='{{ cliente.get_absolute_url }}'><p align="justify"><font size=3>Nombre del Cliente: {{ cliente.Nombre }} {{ cliente.Apellido}}</p></font>
      <p align="justify"><font size=2 >Medio por el cual llego: {{ cliente.medio}}<p></font> </a>


        <br>
    {% endfor %}
    <br>
  
    {% endfor %}
{% endfor %}

</div>



Muchas gracias por tu tiempo 
Reply all
Reply to author
Forward
0 new messages