[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