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