[pyar] [Django] Inventar queryset para el admin

Daniel dmlistapython en gmail.com
Vie Abr 17 23:47:56 ART 2015


Gracias Matías, me re sirivió la solución que propusiste

El 17 de abril de 2015, 17:56, Varela Matias <matu.varela en gmail.com>
escribió:

> 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
>
> _______________________________________________
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150417/bfad62f3/attachment.html>


More information about the pyar mailing list