[pyar] [Django] Inventar queryset para el admin
Varela Matias
matu.varela en gmail.com
Vie Abr 17 17:56:38 ART 2015
Acá lo encontré.
Lo de la vista sería así:
1- creas la vista en la base (también podes usar migrations):
CREATE VIEW vw_abonado As
SELECT a.id, u.nombre, u.apellido, mov.saldo, a.descripcion
FROM "core_abonado" a
LEFT OUTER JOIN "core_usuario" u ON ( a.usuario_id = u.id)
LEFT OUTER JOIN (
select abonado_id, sum(monto) as saldo
from "core_movimientoabonado"
group by abonado_id
) mov ON ( a.id = mov.abonado_id);
2- creas un modelo y especificas que NO sea manejado por el ORM, y el
nombre de la tabla (en la clase Meta):
class AbonadoView(models.Model):
id = models.IntegerField(primary_key=True)
nombre = models.CharField('Nombre', max_length=255)
apellido = models.CharField('Apellido', max_length=255)
descripcion = models.CharField('Descripción', max_length=255,
blank=True)
saldo = models.FloatField()
class Meta:
managed = False
db_table = 'vw_abonado'
Lista, ahora añadis este modelo al admin y podés visualizarlo, filtrar y
demás. Creo que funcionaría. Lo que no va a funcionar es editar ni
eliminar.
Espero te sirva
El 17 de abril de 2015, 17:46, Varela Matias <matu.varela en gmail.com>
escribió:
> Daniel, se me ocurre que podes hacer un vista a nivel de base de datos, y
> luego mostrar esa vista en el admin de django.
>
> Ahora no tengo el código a mano, pero más tarde pego una manera de
> implementarlo
>
> El 17 de abril de 2015, 17:12, Daniel <dmlistapython en gmail.com> escribió:
>
>> mmm... no me fuciona
>> ¿no deberia ser el override de get_queryset?
>>
>> el problema es que no se como generar un nuevo queryset
>>
>> class MiModeloAdmin(admin.ModelAdmin):
>> def get_queryset(self, request):
>> qs = mi_nuevo_qs() <-¿como instancio un nuevo QS o como hago un dict que se comporte como tal?
>>
>> return qs
>>
>>
>>
>> El 17 de abril de 2015, 16:50, Federico Di Nella <
>> federicodinella en gmail.com> escribió:
>>
>>> Dentro del Admin que escribiste podes sobrescribir el método queryset:
>>>
>>> class TuModeloAdmin(admin.ModelAdmin):
>>> def queryset(self, request):
>>> qs = xxx #aca arma el queryset que quieras
>>>
>>> return qs
>>>
>>> Eso debería funcionarte.
>>>
>>>
>>> El 17 de abril de 2015, 16:40, Daniel <dmlistapython en gmail.com>
>>> escribió:
>>>
>>>> Tenia la idea de "engañar" al admin y hacer un modelo ficticio
>>>> que en realidad es para ver información colectada de distintos modelos,
>>>> agruparlos y demas
>>>>
>>>> para lo que necesito inventar el queryset y pasárselo al admin
>>>> sobrescribiendo
>>>> el get_queryset
>>>>
>>>> ¿es muy descabellado?
>>>> ¿cómo lo puedo hacer?
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>
>>
>>
>> --
>> Daniel Malisani
>>
>> _______________________________________________
>> 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
>>
>
>
>
> --
> *Matias E. Varela*
> San Rafael, Mendoza
> Blog: http://matuu.com.ar
> Twitter: @matuvarela <http://twitter.com/matuvarela>
> Skype: matu.varela
>
--
*Matias E. Varela*
San Rafael, Mendoza
Blog: http://matuu.com.ar
Twitter: @matuvarela <http://twitter.com/matuvarela>
Skype: matu.varela
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150417/2cf77478/attachment.html>
More information about the pyar
mailing list