For pages under admin control, yes, we need a full system history. For
other tables what we need is more narrowly defined. I have very clear specs
on what I need to log. ATM performance is not a concern.

On Fri, Dec 15, 2023 at 8:37 PM Mike Dewhirst <mi...@dewhirst.com.au> wrote:

> You seem to be asking for a full history 'system'.
>
> I think the Admin history exists to show a bit of history with a link to
> go back to the change form where it happened.
>
> Full history needs to be specified fairly carefully so it doesn't bog the
> system down. For example, every write costs a performance hit. Also, how
> resilient must it be to cope with database schema changes? How is it going
> to be used in practice? What are the benefits and are they worth the
> effort.
>
> I have worked through some of this in my current project and decided to
> create separate 'mirror' tables for only the critical information and
> automate data collection for others in a plain text field for archival.
>
> It can be quite open ended and might reward very aggressive specification.
>
> Cheers
>
> Mike
>
>
>
> --
> (Unsigned mail from my phone)
>
>
>
> -------- Original message --------
> From: Larry Martell <larry.mart...@gmail.com>
> Date: 16/12/23 01:47 (GMT+10:00)
> To: django-users@googlegroups.com
> Subject: Re: logging admin accesses
>
> On Thu, Dec 14, 2023 at 5:49 PM Mike Dewhirst <mi...@dewhirst.com.au>
> wrote:
>
>> Top posting because of phone email client.
>>
>> Have you seen the Admin history? Might be already logged for you.
>>
>
> Thanks, this is useful, but it does not seem to be logging everything. We
> have a custom user admin page that updates a few models in addition to
> User: UserInfo, UserExtendProduct, and UserRole. If I add a new user I see
> this:
>
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
> | object_id | object_repr | action_flag | change_message
>
>                | content_type_id | user_id |
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
> | 3         | x           |           1 | [{"added": {}}, {"added":
> {"name": "user info", "object": "x"}}, {"added": {"name": "user extend
> product", "object": "x"}}] |               4 |       1 |
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
>
> It shows that a row in User, UserInfo, and UserExtendProdct were
> added, but it does not show what was added to the latter 2, and it does not
> show that rows were added to UserRole.
>
> When I modify a user and cause UserRole to be updated I see this:
>
>
> +-----------+-------------+-------------+----------------+-----------------+---------+
> | object_id | object_repr | action_flag | change_message | content_type_id
> | user_id |
>
> +-----------+-------------+-------------+----------------+-----------------+---------+
> | 3         | x           |           2 | []             |               4
> |       1 |
>
> +-----------+-------------+-------------+----------------+-----------------+---------+
>
> No info about that row being added. If I cause a row in UserRole to be
> deleted I get the exact same entry, so I cannot distinguish between an add
> and a delete and I can't see what was added or deleted.
>
> But if I cause a row in UserInfo or UserExtendProduct to be added I see
> this:
>
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
> | object_id | object_repr | action_flag | change_message
>
>                | content_type_id | user_id |
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
> | 3         | x           |           1 | [{"added": {}}, {"added":
> {"name": "user info", "object": "x"}}, {"added": {"name": "user extend
> product", "object": "x"}}] |               4 |       1 |
>
> +-----------+-------------+-------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------+---------+
>
> Shows an add, but not what was added.
>
> So my questions are:
> -how can I get it to show the details of what was added or changed
> -why are updates to UserInfo and UserExtendProduct shown, but updates to
> UserRole are not?
>
> Thanks!
>
> -------- Original message --------
>> From: Larry Martell <larry.mart...@gmail.com>
>> Date: 15/12/23 06:44 (GMT+10:00)
>> To: django-users@googlegroups.com
>> Subject: logging admin accesses
>>
>> Is there a way to capture all admin changes (add, change, delete). I have
>> some middleware that gets called on any admin add, change, or delete, but I
>> have not figured out a way to capture specifically what was done, something
>> like: model, PK, action, e.g.
>>
>> user, 12, change, first name changed
>> user, 15, add
>> user, 24, delete
>>
>> I am looking for something generic that will work for all models under
>> admin control
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CACwCsY6U%2B6T%3D6kP69J3d%3Ddm%3DZ%2Btrp-WhadJ%2B8sj1B5YOQzajYA%40mail.gmail.com.

Reply via email to