Thursday, 15 April 2010

python - Group by in Django? -



python - Group by in Django? -

i have next construction in django app:

class telefono(models.model): tipo = models.charfield(max_length=200) lada = models.integerfield() numero = models.charfield(max_length=12) def __unicode__(self): homecoming (self.tipo +" - (" +str(self.lada)+")"+str(self.numero)) class persona(models.model): nombre = models.charfield(max_length=200) apellidopaterno = models.charfield(max_length=200) apellidomaterno = models.charfield(max_length=200) rfc = models.charfield(max_length=10) ubicacion = models.onetoonefield(ubicacion) telefonos = models.manytomanyfield(telefono)

the problem is: need single "telefono" show in datagrid.. built next query in mysql:

select p.nombre,tf.numero persona p bring together persona_telefonos t on t.persona_id=p.id bring together telefono tf on t.telefono_id=tf.id grouping p.id

and gives result:

"nombre" "numero" "mikchorro123213" "5345234523"

but in django have query:

cliente.objects.filter().values("id","nombre","telefonos__numero", "ubicacion__direccion")

and 2 results.. 1 each ("telefono") object in many many relationship..

how can grouping function in django?

please refer documentation : raw query, filterings, group_by

example:

query = cliente.objects.all().query query.group_by = ['field_name'] results = queryset(query=query, model=model_name)

python mysql django

No comments:

Post a Comment