Wednesday, February 29, 2012

Re: User actions logging app

The log entry model above is very much like what is used in the Admin.
You might want to investigate that model, too, for logging who-did-
what. It can be found from django.contrib.admin.models.

The reason why I use my own is that I usually have some extra columns
related to the audit trail handling.

- Anssi

On Feb 29, 3:12 pm, Mario Gudelj <mario.gud...@gmail.com> wrote:
> Wow. Legend! That's so much Annsi.
>
> On 29 February 2012 18:00, Babatunde Akinyanmi <tundeba...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Yes, they definitely will.
>
> > On 2/28/12, akaariai <akaar...@gmail.com> wrote:
> > > On Feb 28, 11:35 pm, Mario Gudelj <mario.gud...@gmail.com> wrote:
> > >> Hi list,
>
> > >> I was wandering if someone could recomend an easy django app for logging
> > >> user actions performed on models. I'd like to log changes logged in
> > users
> > >> make around the app.
>
> > > I think there are some apps out there. The first question however is
> > > do you want to log "user a changed object b" or do you need an audit
> > > trail also, that is do you need to have the information of user a
> > > changed object b's field c from value "foo" to value "bar".
>
> > > I really am not the one to tell you which app is the correct one. I
> > > usually have a small create_log_entry() method for creating entries
> > > for modifications, and database triggers for the audit trail. The
> > > create_log_entry is often the right way to go, as more often than not
> > > I want to set all changes to the "main" record. That is, if somebody
> > > changes an article's attachment, it is the article that needs to have
> > > the changed log entry, not the attachment.
>
> > > The log entry model is something like this:
> > > class LogEntry(object):
> > >     to_pk = models.IntegerField() #lets assume you are working only
> > > with integer primary keys
> > >     to_type = models.CharField(max_length=40, choices=(('article',
> > > 'Article'), ...))
> > >     mod_type = choices "INSERT/UPDATE/DELETE"
> > >     who = FK(user)
> > >     what = models.TextField() # A "comment" for the edit
> > >     when = models.DateTimeField()
> > >     @classmethod
> > >     def create_log_entry(cls, to_obj, edit_type, user, what_done):
> > >           ...
>
> > > Combined with database-level triggers you can get a good audit trail.
> > > I have some scripts to ease maintain the DB triggers for PostgreSQL
> > > when using Django. I hope I will have some time to polish them for
> > > release, I believe they could be some use for the community.
>
> > >  - Anssi
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Django users" group.
> > > To post to this group, send email to django-users@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > django-users+unsubscribe@googlegroups.com.
> > > For more options, visit this group at
> > >http://groups.google.com/group/django-users?hl=en.
>
> > --
> > Sent from my mobile device
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscribe@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment