Re: [django-ar] Histórico en Django admin

107 views
Skip to first unread message

fisa

unread,
Feb 12, 2015, 3:03:53 PM2/12/15
to djan...@googlegroups.com
Si lo que querés es mirar una historia de todas las cosas hechas, podrías importar el modelo django.contrib.admin.models.LogEntry y hacer consultas filtrando por los campos que ese modelo tiene.
En la última versión de django se ve así:

class LogEntry(models.Model):
    action_time = models.DateTimeField(_('action time'), auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    content_type = models.ForeignKey(ContentType, blank=True, null=True)
    object_id = models.TextField(_('object id'), blank=True, null=True)
    object_repr = models.CharField(_('object repr'), max_length=200)
    action_flag = models.PositiveSmallIntegerField(_('action flag'))
    change_message = models.TextField(_('change message'), blank=True)

Un ejemplo de cosa que podrías hacer:
Ver los cambios hechos por pepe desde ayer

    from django.contrib.admin.models import LogEntry
    from datetime import datetime
    pepe = # un objeto user
    ayer = datetime(2015, 2, 11)
    cambios = LogEntry.objects.filter(user=pepe, action_time__gte=ayer)

Saludos!

On Thu Feb 12 2015 at 4:56:03 PM Andrea Zakowicz <andreaz...@gmail.com> wrote:
Hola! quisiera saber si alguien tiene idea o si es posible hacer que el histórico que trae django por cada instancia del modelo se pueda generalidad a uno general, es decir, en vez de ingresar a cada objeto para ver su historial tener uno en el cual se plasmes todos. Si alguien puede ayudarme desde ya gracias.

--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a djan...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/django-ar.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/django-ar/29998d58-e13f-404e-a185-9b081352c8c4%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Andrea Zakowicz

unread,
Feb 12, 2015, 5:27:23 PM2/12/15
to djan...@googlegroups.com
Si esto lo tengo en la seccion del admin, pero simplemente me registra los ABM del administrador. Lo que me interesa es tener el seguimiento de una tabla, utilizo django-simple-history pero lo que no se es como puedo llevar esos datos a la interfaz del admin. No se si me explico bien


El jueves, 12 de febrero de 2015, 17:03:53 (UTC-3), fisadev escribió:
Si lo que querés es mirar una historia de todas las cosas hechas, podrías importar el modelo django.contrib.admin.models.LogEntry y hacer consultas filtrando por los campos que ese modelo tiene.
En la última versión de django se ve así:

class LogEntry(models.Model):
    action_time = models.DateTimeField(_('action time'), auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    content_type = models.ForeignKey(ContentType, blank=True, null=True)
    object_id = models.TextField(_('object id'), blank=True, null=True)
    object_repr = models.CharField(_('object repr'), max_length=200)
    action_flag = models.PositiveSmallIntegerField(_('action flag'))
    change_message = models.TextField(_('change message'), blank=True)

Un ejemplo de cosa que podrías hacer:
Ver los cambios hechos por pepe desde ayer

    from django.contrib.admin.models import LogEntry
    from datetime import datetime
    pepe = # un objeto user
    ayer = datetime(2015, 2, 11)
    cambios = LogEntry.objects.filter(user=pepe, action_time__gte=ayer)

Saludos!
On Thu Feb 12 2015 at 4:56:03 PM Andrea Zakowicz <andreaz...@gmail.com> wrote:
Hola! quisiera saber si alguien tiene idea o si es posible hacer que el histórico que trae django por cada instancia del modelo se pueda generalidad a uno general, es decir, en vez de ingresar a cada objeto para ver su historial tener uno en el cual se plasmes todos. Si alguien puede ayudarme desde ya gracias.

--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+...@googlegroups.com.

fisa

unread,
Feb 12, 2015, 5:31:48 PM2/12/15
to djan...@googlegroups.com
Si querés mostrar datos que salen de otro lado, podrías personalizar alguno de los templates y/o vistas del admin, pero eso ya es un poco más complicado y no comprendo tan específicamente qué es lo que estás necesitando.

Andrea Zakowicz

unread,
Feb 12, 2015, 5:51:05 PM2/12/15
to djan...@googlegroups.com
Si estaba viendo para personalizar algunos archivos pero esta complicado y no tengo mucho tiempo.
El problema es asi, tengo un modelo que va almacenando operaciones o acciones que realizan usuarios ya sea administrador o no! lo que necesito es obtener todas estas acciones con sus respectivos usuarios pero desde la interfaz del admin.


El jueves, 12 de febrero de 2015, 17:03:53 (UTC-3), fisadev escribió:
Si lo que querés es mirar una historia de todas las cosas hechas, podrías importar el modelo django.contrib.admin.models.LogEntry y hacer consultas filtrando por los campos que ese modelo tiene.
En la última versión de django se ve así:

class LogEntry(models.Model):
    action_time = models.DateTimeField(_('action time'), auto_now=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    content_type = models.ForeignKey(ContentType, blank=True, null=True)
    object_id = models.TextField(_('object id'), blank=True, null=True)
    object_repr = models.CharField(_('object repr'), max_length=200)
    action_flag = models.PositiveSmallIntegerField(_('action flag'))
    change_message = models.TextField(_('change message'), blank=True)

Un ejemplo de cosa que podrías hacer:
Ver los cambios hechos por pepe desde ayer

    from django.contrib.admin.models import LogEntry
    from datetime import datetime
    pepe = # un objeto user
    ayer = datetime(2015, 2, 11)
    cambios = LogEntry.objects.filter(user=pepe, action_time__gte=ayer)

Saludos!
On Thu Feb 12 2015 at 4:56:03 PM Andrea Zakowicz <andreaz...@gmail.com> wrote:
Hola! quisiera saber si alguien tiene idea o si es posible hacer que el histórico que trae django por cada instancia del modelo se pueda generalidad a uno general, es decir, en vez de ingresar a cada objeto para ver su historial tener uno en el cual se plasmes todos. Si alguien puede ayudarme desde ya gracias.

--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+...@googlegroups.com.

xavier lesa

unread,
Feb 12, 2015, 9:23:14 PM2/12/15
to django-list
Perdón pero si entendí bien lo que tenes que hacer es justamente registrar ese Modelo en el admin y listo.

#model.py
class ModeloQueRegitraTodo(models.Model):
    ....


#admin.py
from django.contrib import admin
from tuapp.models import ModeloQueRegitraTodo

class ModeloQueRegitraTodo Admin(admin.ModelAdmin):
    pass

admin.site.register(ModeloQueRegitraTodo, ModeloQueRegitraTodoAdmin)





Xavier

xavierlesa.com | @xavierlesa
cel: +011 15 3868-3918

Reply all
Reply to author
Forward
0 new messages