#36555: Allow null for LogEntry.user
------------------------+-----------------------------------------
Reporter: Siburg | Type: New feature
Status: new | Component: contrib.admin
Version: dev | Severity: Normal
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
------------------------+-----------------------------------------
The `user` attribute of `LogEntry` is currently required. That causes two
problems for me:
1. I have admin actions that can be performed by users as well as by
periodically scheduled tasks (think Celery). For the latter case I now
have to `get_or_create` a proxy user record for the `LogEntry` for that
action. For example:
{{{
proxy_user, created = User.objects.get_or_create(
username='DataScrubTask',
defaults={'first_name': 'Proxy user for LogEntry records from
"archive_and_scrub_records" task'},
)
}}}
2. When a user who took an admin action is deleted then the admin history
is effectively corrupted. Because of the `CASCADE` for `LogEntry.user`,
their actions are deleted from the history.
To eliminate those problems I propose to add `blank=True, null=True` to
the `user` field definition, and change `CASCADE` to `SET_NULL`.
To provide more flexibility for tracking actions, I also propose to add a
`CharField` that can contain a text representation of who or what
performed the action.
I have created a preliminary, incomplete PR to show my proposed approach.
I will gladly continue work on that if this proposal is accepted.
--
Ticket URL: <https://code.djangoproject.com/ticket/36555>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/01070198acf7b580-91655a4d-8ade-4a96-9878-d01d0350f58c-000000%40eu-central-1.amazonses.com.